#include <iostream>
#include <vector>
using namespace std;
void pritnVector(const vector<int> & a){
cout<<"vector ";
for (int i = 0; i < a.size(); ++i){
cout<<a[i]<<" ";
}
cout<<endl;
}
void swap(vector<int> & a, int i, int j){
int temp=a[i];
a[i]=a[j];
for (int k = j; k>=i+2; --k){
a[k]=a[k-1];
}
a[i+1]=temp;
}
void getMaxNumber(vector<int>& a, int n, int k){
if(n<=1)
return;
int i=0;
int maxi=0;
int maxVal=a[i];
while(i<n-1 && k>0){
for(int j=1; j<=k && (i+j)<n ; j++){
if(a[i+j]>maxVal){
maxVal=a[i+j];
maxi=i+j;
}
}
if(maxi>0){
swap(a, i, maxi);
}
k-=(maxi-i);
i++;
}
}
int main(int argc, char const *argv[]){
vector<int> a={1,3,4,2,5,7,9};
getMaxNumber(a, 7, 1);
pritnVector(a);
vector<int> b={1,3,4,2,5,7,9};
getMaxNumber(b, 7, 2);
pritnVector(b);
vector<int> c={1,3,4,2,5,7,9};
getMaxNumber(c, 7, 3);
pritnVector(c);
vector<int> d={1,3,4,0,5,7,9};
getMaxNumber(d, 7, 3);
pritnVector(d);
vector<int> e={1,3,4,0,5,7,9};
getMaxNumber(e, 7, 4);
pritnVector(e);
vector<int> f={9,8,7,6,5,4,3};
getMaxNumber(f, 7, 4);
pritnVector(f);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgp2b2lkIHByaXRuVmVjdG9yKGNvbnN0IHZlY3RvcjxpbnQ+ICYgYSl7Cgljb3V0PDwidmVjdG9yICI7Cglmb3IgKGludCBpID0gMDsgaSA8IGEuc2l6ZSgpOyArK2kpewoJCWNvdXQ8PGFbaV08PCIgIjsKCX0KCWNvdXQ8PGVuZGw7Cn0KCnZvaWQgc3dhcCh2ZWN0b3I8aW50PiAmIGEsIGludCBpLCBpbnQgail7CgoJaW50IHRlbXA9YVtpXTsKCWFbaV09YVtqXTsKCWZvciAoaW50IGsgPSBqOyBrPj1pKzI7IC0tayl7CgkJYVtrXT1hW2stMV07Cgl9CglhW2krMV09dGVtcDsKfQkKCgoKdm9pZCBnZXRNYXhOdW1iZXIodmVjdG9yPGludD4mIGEsIGludCBuLCBpbnQgayl7CglpZihuPD0xKQoJCXJldHVybjsKCglpbnQgaT0wOwoJaW50IG1heGk9MDsKCWludCBtYXhWYWw9YVtpXTsKCQoJd2hpbGUoaTxuLTEgJiYgaz4wKXsKCQlmb3IoaW50IGo9MTsgajw9ayAmJiAoaStqKTxuIDsgaisrKXsKCQkJaWYoYVtpK2pdPm1heFZhbCl7CgkJCQltYXhWYWw9YVtpK2pdOwoJCQkJbWF4aT1pK2o7CgkJCX0KCQl9CgkJCgkJaWYobWF4aT4wKXsKCQkJc3dhcChhLCBpLCBtYXhpKTsKCQl9CgkJCQoJCWstPShtYXhpLWkpOwoJCWkrKzsKCX0KfQoKCmludCBtYWluKGludCBhcmdjLCBjaGFyIGNvbnN0ICphcmd2W10pewoJCgl2ZWN0b3I8aW50PiBhPXsxLDMsNCwyLDUsNyw5fTsKCWdldE1heE51bWJlcihhLCA3LCAxKTsKCXByaXRuVmVjdG9yKGEpOwoKCXZlY3RvcjxpbnQ+IGI9ezEsMyw0LDIsNSw3LDl9OwoJZ2V0TWF4TnVtYmVyKGIsIDcsIDIpOwoJcHJpdG5WZWN0b3IoYik7CgoKCXZlY3RvcjxpbnQ+IGM9ezEsMyw0LDIsNSw3LDl9OwoJZ2V0TWF4TnVtYmVyKGMsIDcsIDMpOwoJcHJpdG5WZWN0b3IoYyk7CgoJdmVjdG9yPGludD4gZD17MSwzLDQsMCw1LDcsOX07CglnZXRNYXhOdW1iZXIoZCwgNywgMyk7Cglwcml0blZlY3RvcihkKTsKCgl2ZWN0b3I8aW50PiBlPXsxLDMsNCwwLDUsNyw5fTsKCWdldE1heE51bWJlcihlLCA3LCA0KTsKCXByaXRuVmVjdG9yKGUpOwoKCXZlY3RvcjxpbnQ+IGY9ezksOCw3LDYsNSw0LDN9OwoJZ2V0TWF4TnVtYmVyKGYsIDcsIDQpOwoJcHJpdG5WZWN0b3IoZik7CgoJcmV0dXJuIDA7Cn0=