Pagini recente »
Cod sursă (job #799826)
Cod sursă (job
#799826)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 10000
int v[MAXN];
int next[MAXN];
int main()
{
FILE*fin;
FILE*fout;
fin = fopen("domino.in","r");
fout = fopen("domino.out","w");
int n,k1,k2,i,a,b,e,st,ul;
fscanf(fin,"%d%d%d",&n,&k1,&k2);
for(i = 0 ; i < n; i++ ){
fscanf(fin,"%d%d",&a,&b);
v[i] = a*10+b;
next[i] = i+1;
}
st = 0;
do{
e = 0;
for( i = st; i < n; i = next[i] ){
if(v[i] < v[next[i]] && k2 > 0){
if(i != st) next[ul] = next[i];
else st = next[i];
k2--;
e++;
}
else if((v[i] % 10) > (v[i] / 10) && k1 > 0){
v[i] = (v[i] % 10) * 10 + v[i]/10;
k1--;
}
ul = i;
}
}while(e > 0);
for(i = st; i < n; i = next[i] )
fprintf(fout,"%d",v[i]);
return 0;
}