Submission #132841

#TimeUsernameProblemLanguageResultExecution timeMemory
132841muradeynPalindrome-Free Numbers (BOI13_numbers)C++14
72.50 / 100
3 ms504 KiB
/* Murad Eynizade */ #include <bits/stdc++.h> #define intt long long #define fyck ios_base::sync_with_stdio(0);cin.tie(0); #define F first #define S second //#define endl '\n' using namespace std; int len; intt a , b; intt dp[20][11][11][2]; string s; intt solve(int i,int d1,int d2,int f) { if (dp[i][d1][d2][f] != -1)return dp[i][d1][d2][f]; if (i == len) return dp[i][d1][d2][f] = f; intt ret = 0; int til; if (f) { til = 10; til -= (d2 != 10); } else til = s[i] - '0'; for (int in = 0;in<=til;in++) { if ((d1 != 10 && in == d1) || (d2 != 10 && in == d2) )continue; int nf = f; nf |= (in < s[i] - '0'); nf |= (in == 10); ret += solve(i + 1 , d2 , in , nf); } return dp[i][d1][d2][f] = ret; } intt get(intt x) { if (x == -1)return 0; memset(dp , -1 , sizeof(dp)); s = ""; len = 0; while (x) { s += x % 10 + '0'; x /= 10; len++; } reverse(s.begin(),s.end()); return solve(0 , 10 , 10 , 0); } int main() { fyck cin>>a>>b; cout<<get(b + 1) - get(a)<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...