题目:
https://www.luogu.org/problem/show?pid=1106
一年前的坑,填一下;
有点坑;
注意需要过滤0;
还有记得给bool值赋初值;
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
char g[10001];
int k,len,tot;
int s[10001];
void swap(int &a,int &b) {a^=b^=a^=b;return;}
void solve()
{
scanf("%s%d",g+1,&k);
len=strlen(g+1);
for(int i=1;i<=len;i++) s[i]=g[i]-'0';
while(true)
{
bool flag=0;//没有赋初值,导致T了一组;
if(tot==k) break;
for(int i=1;i<=len;i++)
if(s[i]>s[i+1])
{
flag=1,tot++,len--;
for(int j=i;j<=len;j++) swap(s[j],s[j+1]);
break;
}
if(!flag) tot++,len--;
}
int sta=1;
while(!s[sta] && sta<len) sta++;
for(int i=sta;i<=len;i++) cout<<s[i];
return;
}
int main()
{
solve();
return 0;
}