이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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)
        return s[0]+1;
    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);
}
컴파일 시 표준 에러 (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 time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |