Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: mocngaijakraila
Problemset: Strobogrammatic Numbers
Language: cpp
Time: 0.021 second
Submitted On: 2026-06-28 15:13:00
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll l, u, strobo;
int ans = 0;
void basecase() {
if(0 >= l && 0 <= u) ans++;
if(1 >= l && 1 <= u) ans++;
if(8 >= l && 8 <= u) ans++;
}
void strob(ll n) {
if(n >= l && n <= u) ans++;
}
void rec(int n, string t1, string t2, int sz) {
if(n == sz) {
reverse(t2.begin(), t2.end());
strob(stoll(t1 + t2));
strob(stoll(t1+'0'+t2));
strob(stoll(t1+'1'+t2));
strob(stoll(t1+'8'+t2));
reverse(t2.begin(), t2.end());
return;
}
rec(n + 1, t1 + '1', t2 + '1', sz);
if(!t1.empty()) rec(n + 1, t1 + '0', t2 + '0', sz);
rec(n + 1, t1 + '8', t2 + '8', sz);
rec(n + 1, t1 + '6', t2 + '9', sz);
rec(n + 1, t1 + '9', t2 + '6', sz);
}
int main() {
cin.tie(0)->sync_with_stdio(0);
cin >> l >> u;
ll n = l, m = u;
basecase();
rec(0, "", "", 1);
rec(0, "", "", 2);
rec(0, "", "", 3);
rec(0, "", "", 4);
rec(0, "", "", 5);
rec(0, "", "", 6);
rec(0, "", "", 7);
cout << ans;
return 0;
}