Submission
Status:
PPPPPPP-P-
Subtask/Task Score:
80/100
Score: 80
User: mocngaijakraila
Problemset: Strobogrammatic Numbers
Language: cpp
Time: 0.019 second
Submitted On: 2026-06-21 21:28:14
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll l, u, strobo;
int ans = 0;
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));
// cout << t1 << t2 << '\n';
// cout << t1 << '0' << t2 << '\n';
// cout << t1 << '1' << t2 << '\n';
// cout << t1 << '8' << t2 << '\n';
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;
int cnt1 = 0, cnt2 = 0;
while(n > 0) {
n /= 10;
cnt1++;
}
while(m > 0) {
m /= 10;
cnt2++;
}
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;
}