Submission #58566

#TimeUsernameProblemLanguageResultExecution timeMemory
58566BatrrPalindrome-Free Numbers (BOI13_numbers)C++14
95 / 100
4 ms612 KiB
#include <bits/stdc++.h> /* #pragma comment(linker, "/stack:200000000") #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4") */ #define ll long long #define f first #define s second #define pb push_back #define mp make_pair #define IOS ios_base::sync_with_stdio(0); using namespace std; const ll maxn=2e5+123,inf=1e18,mod=1e9+7,N=360360,LOG=20; ll a,b,ans; vector<int> av,bv; vector<int> tov(ll x){ vector<int> res; if(x==0) res.pb(0); while(x){ res.pb(x%10); x/=10; } reverse(res.begin(),res.end()); return res; } ll calc(int a,int b,int len){ if(len==0) return 1; ll res=1; if(b==-1) res=9,len--; while(len--) res*=8; return res; } ll get(vector<int> s){ if(s.size()==1 && s[0]==-1) return 0; ll res=0; for(int i=1;i<s.size();i++){ if(i==1) res+=10; else res+=9*9*pow(8,i-2); } for(int i=0;i<s.size();i++){ //cout<<i<<" "<<s.size()<<endl; int a,b,c; a=b=-1; if(i>1) a=s[i-2]; if(i>0) b=s[i-1]; for(int j=(i==0);j<s[i];j++){ c=j; if(a==c || b==c) continue; // cout<<a<<" "<<b<<" "<<c<<" "<<i<<" "<<endl; res+=calc(a,b,s.size()-1-i); } if(i>0 && s[i]==s[i-1]) break; if(i>1 && s[i]==s[i-2]) break; if(i==s.size()-1) res++; } return res; } int main(){ #ifdef LOCAL freopen ("test.in", "r", stdin); #endif cin>>a>>b; av=tov(a-1); bv=tov(b); cout<<get(bv)-get(av); }

Compilation message (stderr)

numbers.cpp: In function 'long long int get(std::vector<int>)':
numbers.cpp:44:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=1;i<s.size();i++){
                 ~^~~~~~~~~
numbers.cpp:50:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<s.size();i++){
                 ~^~~~~~~~~
numbers.cpp:69:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(i==s.size()-1)
            ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...