Pagini recente » Cod sursa (job #2069741) | Cod sursa (job #2057345) | Cod sursa (job #2071852) | Cod sursa (job #1142919) | Cod sursa (job #238729)
Cod sursa(job #238729)
#include <stdio.h>
FILE *in = fopen("farfurii.in","r");
FILE *out = fopen("farfurii.out","w");
long ff[100001];
long bb[100001];
int main(){
long long n,k,i,kk,m,ultim,sw;
fscanf(in,"%lld %lld",&n,&k);
for(i=1;i<=n;i++)
ff[i] = bb[i] = i;
kk = k;
i=n;ultim=n;
while(kk && i>1)
if(bb[i] > bb[i-1]){
bb[i]^=bb[i-1]^=bb[i]^=bb[i-1];
kk--;
if(bb[i-1] == ff[n])ultim = i-1;
i++;
} else i--;
kk = k;i=ultim;sw=1;
while(kk){
//if(kk && i == n)i = ultim;
if(i == ultim) sw = 1;
if(sw == n) sw = 0;
if(sw && ff[i] < ff[i+1]){
ff[i]^=ff[i+1]^=ff[i]^=ff[i+1];
kk--;
i++;
} else i--;
if(!sw && ff[i] > ff[i-1]){
ff[i]^=ff[i-1]^=ff[i]^=ff[i-1];
k--;
i--;
}
}
for(i=1;i<=n;i++)
fprintf(out,"%ld ",ff[i]);
return 0;
}