Cod sursă (job #799826)

Utilizator avatar Emre Isleam Emre Emre IP ascuns
Problemă Domino Compilator c-32 | 0,82 kb
Rundă Arhiva de probleme Status evaluat
Dată 14 dec. 2024 19:55:31 Scor 32
#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;
}