Thứ Năm, 19 tháng 5, 2022

SODOCLAP C++


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

string s,t;
int len,k,d[100];

void tao_so(int k){
  //  cout<<k<<endl;
    bool kt=false;
    while(kt==false){
        for(int i=s[k]+1;i<='9';i++){
            if(d[i]==0){
                s[k]=char(i);
                d[i]++;
                kt=true;
                break;
            }
        }
        if(kt==true) break;
        k--;
        d[s[k]]=0;
    }
    int j='0';
    for(int i=k+1;i<len;i++){
        while(d[j]>0) j++;
        s[i]=char(j);
     //   cout<<j<<" "<<d[j]<<endl;
        d[j]++;
    }

}

void giai(){
    int k=-1;
    for(int i=1;i<len;i++){
        if(d[s[i]]>0){
            k=i;
            break;
        }
        d[s[i]]++;
    }
    if(k==-1) k=len-1;
    tao_so(k);
    if(s[0]=='0'){
        for(int i=1;i<len;i++) cout<<s[i];
    }
    else cout<<s;

}


int main(){
    freopen("b.inp","r",stdin);
    freopen("b.out","w",stdout);
    cin>>s;
    t=s;
    s='0'+s;
    len=s.size();
    giai();
}




Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.