Submission

Status:

-PTTTTTTTT

Subtask/Task Score:

10/100

Score: 10

User: lazy

Problemset: Strobogrammatic Numbers

Language: cpp

Time: 1.096 second

Submitted On: 2025-10-14 21:51:32

#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)) {
            cout << "case : " << i << endl;
            count++;
        }
    }

    cout << count;

    return 0;
}