cf-B-Azamon Web Services

链接
(今天睡到11点才起来,脑子还不清醒呀。哎…这么简单的一题)
优先找前面的字符替换替换后面最小的字符(有多个时,优先用后面)

#include<bits/stdc++.h>
using namespace std;
char s1[5010],s2[5010];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%s",s1);scanf("%s",s2);int ml=strlen(s1);
        if(strcmp(s1,s2)<0) cout<<s1<<endl;
        else {
            int len=0;
            int id=0,f=0;
            for(int i=0;i<ml;++i){
                char Min=s1[i];
                len=ml-1;id=i;
                while(len>i){
                    if(s1[len]<Min) Min=s1[len],id=len;
                    --len;
                }
                f=i;
                if(id==i) continue;
                else break;
            }
            swap(s1[f],s1[id]);
            if(strcmp(s1,s2)<0) cout<<s1<<endl;
            else cout<<"---"<<endl;
        }
    }
    return 0;
}


发布了96 篇原创文章 · 获赞 11 · 访问量 2274

猜你喜欢

转载自blog.csdn.net/weixin_43769146/article/details/103550773
今日推荐