Submission #1008142

#TimeUsernameProblemLanguageResultExecution timeMemory
1008142ezzzayPalindrome-Free Numbers (BOI13_numbers)C++14
71.25 / 100
1 ms604 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define ss second #define pb push_back int fun(int n){ if(n<=0)return n; string s= to_string(n); int N=s.size(); int dp[20][10][10][2]; for(int i=0;i<20;i++){ for(int j=0;j<10;j++){ for(int p=0;p<10;p++){ for(int z=0;z<2;z++)dp[i][j][p][z]=0; } } } for(int i=1;i<10;i++){ for(int j=0;j<10;j++){ if(i>s[0]-'0')break; if(i==j)continue; if(i==s[0]-'0' and j==s[1]-'0'){ dp[1][i][j][1]+=1; break; } dp[1][i][j][0]++; } } for(int i=2;i<N;i++){ for(int j=0;j<10;j++){ for(int p=0;p<10;p++){ for(int k=0;k<10;k++){ for(int z=0;z<2;z++){ if(z==1 and k> s[i]-'0')continue; if(k!=p and j!=k)dp[i][p][k][z and (s[i]-'0'==k)]+=dp[i-1][j][p][z]; } } } } } int ans=0; for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ for(int z=0;z<2;z++){ ans+=dp[N-1][i][j][z]; } } } return ans; } signed main(){ int a,b; cin>>a>>b; cout<<fun(b)-fun(a-1); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...