Submission
Status:
PPTTTTTTTT
Subtask/Task Score:
20/100
Score: 20
User: lazy
Problemset: Strobogrammatic Numbers
Language: cpp
Time: 1.097 second
Submitted On: 2025-10-14 21:52:39
#include <bits/stdc++.h>
using namespace std;
bool is_strobo(int n) {
string s = to_string(n);
int l = s.length();
if (l%2 == 1) {
int mid = (int) (l/2 + 0.5);
bool case_zeros = (s[mid] == '0');
bool case_eights = (s[mid] == '8');
bool case_ones = (s[mid] == '1');
if (! (case_zeros || case_eights || case_ones) ) {
return false;
}
}
for (int i = 0; i < (int) l/2; i++) {
bool case_six_nine = (s[i] == '6' && s[l-i-1] == '9');
bool case_nine_six = (s[i] == '9' && s[l-i-1] == '6');
bool case_zeros = (s[i] == '0' && s[l-i-1] == '0');
bool case_eights = (s[i] == '8' && s[l-i-1] == '8');
bool case_ones = (s[i] == '1' && s[l-i-1] == '1');
if (!(case_six_nine || case_nine_six || case_zeros || case_eights || case_ones)) {
return false;
}
}
return true;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long high,low;
cin >> low >> high;
int count = 0;
for (long long i = low; i <= high; i++) {
if (is_strobo(i)) {
count++;
}
}
cout << count;
return 0;
}