Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: konthaina_TH

Problemset: Strobogrammatic Numbers

Language: cpp

Time: 0.025 second

Submitted On: 2026-09-26 01:58:41

#include <bits/stdc++.h>
using namespace std;
#define ll long long

ll a,b;
int cnt = 0;
vector<pair<char,char>> pairs = {{'0','0'},{'1','1'},{'8','8'},{'6','9'},{'9','6'}};
void gen(string cur,int len) {
    if (cur.length() == len) {
        if (len > 1 and cur[0] == '0') return;
        ll val = stoll(cur);
        if (val >= a and val <= b) {
            cnt++;
        }
        return;
    }

    if (cur.length() == 0 and len % 2 != 0) {
        gen("1",len);
        gen("0",len);
        gen("8",len);
        return;
    }

    for (auto p : pairs) {
        gen(p.first + cur + p.second,len);
    }
}
int main() {
    cin >> a >> b;
    int min_len = to_string(a).length();
    int max_len = to_string(b).length();

    for (int len = min_len;len <= max_len;len++) {
        gen("",len);
    }

    cout << cnt << "\n";
    return 0;
}