Problem link : Holt & Numbers
Difficulty : Medium
Setter : Harshit Garg
Code :
#include <bits/stdc++.h>
using namespace std;
long long variation_count(int N, int a, int b)
{
if (N < a)
{
return 0;
}
int count = 0;
if (a == b)
{
count++;
}
for (int mul = 10;; mul *= 10)
{
int limit = (a + 1) * mul;
for (int val = a * mul + b; val < limit; val += 10)
{
if (N < val)
{
return count;
}
count++;
}
}
}
int main()
{
int N;
cin >> N;
long long ret = 0;
for (int a = 1; a < 10; a++)
{
for (int b = a; b < 10; b++)
{
long long a_count = variation_count(N, a, b);
if (a == b)
{
ret += a_count * a_count;
}
else
{
long long b_count = variation_count(N, b, a);
ret += a_count * b_count * 2;
}
}
}
cout << ret << endl;
return 0;
}