Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: mantaggez

Problemset: Strobogrammatic Numbers

Language: cpp

Time: 0.022 second

Submitted On: 2026-03-22 19:39:48

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

ll low, high, ans;

void cal(string s, ll n)
{
    if(s.size() == n) {
        if(s.size() > 1 && s[0] == '0') return ;
        ll val = stoll(s);
        if(low <= val && val <= high) {
            ans++;
        }
        return ;
    }

    if(n % 2 && s.size() == 0) {
        cal("0", n);
        cal("1", n);
        cal("8", n);
        return ;
    }

    cal("0" + s + "0", n);
    cal("1" + s + "1", n);
    cal("8" + s + "8", n);
    cal("6" + s + "9", n);
    cal("9" + s + "6", n);
}

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin >> low >> high;
    ll min_len = to_string(low).size();
    ll max_len = to_string(high).size();
    for(ll len=min_len;len<=max_len;len++) {
        cal("", len);
    }
    cout << ans << '\n';
    return 0;
}