[2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(5))
参考程序:
#include <bits/stdc++.h>
using namespace std;
string a;
int main() {
cin >> a;
int len=a.length();
bool flag=0;//假定无解
for(int i=len-1;i>0;i--){
if (a[i]<a[i-1]){
for(int j=i,k=len-1;j<k;j++,k--){
swap(a[j],a[k]);
}
for(int j=i;j<=len-1;j++){
if(a[i-1]>a[j]){
swap(a[i-1],a[j]);
break;
}
}
flag=1;//有解
break;
}
}
if(flag==1&&a[0]!='0'){
cout<<a;
}else{
cout<<-1;
}
return 0;
}