Editorial - HOLT

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;
}