题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82662#problem/E
标准的模拟题:总共可以交换k次,那就在k次以内找能进行交换的最小的数字,然后,用k减去消耗的次数
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define ll __int64
int main()
{
char a[2000];
ll k;
while(cin >> a >> k)
{
int flag = -1;
while(k)
{
flag++;
char Max = a[flag];
int temp = -1;
for(int i = 1; i <= k; i++)
{
if(a[i+flag]>Max)
{
Max = a[i+flag];
temp = i;
}
}
//cout << flag << endl;
//cout << Max << " " << temp << endl;
for(int m = temp+flag; m > flag; m--)
{
swap(a[m],a[m-1]);
}
if(temp!=-1)
k -= temp;
//cout << k << endl;
}
puts(a);
}
return 0;
}