Cod sursa(job #122302)

Utilizator katakunaCazacu Alexandru katakuna Data 11 ianuarie 2008 19:11:35
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>

int aux,a,b,y2,y,m[301][301],n,i,j,x,min,l[602][3];

int main(){
FILE *f=fopen("grozavesti.in","r");
fscanf(f,"%d",&n);

   for(i=1;i<=n;i++){
      for(j=1;j<=n;j++){
      fscanf(f,"%d",&m[i][j]);
      }

   }

fclose(f);

 for(x=1;x<=n;x++){
 min=1000001;a=b=x;
    for(i=x;i<=n;i++){
       for(j=x;j<=n;j++){
       if(m[i][j]<min&&m[i][j]>=m[x-1][x-1]){min=m[i][j];a=i;b=j;}
       }
    }

  if(a!=x){
  y++;l[y][0]=1;l[y][1]=a;l[y][2]=x;

     for(i=1;i<=n;i++){
     aux=m[x][i];
     m[x][i]=m[a][i];
     m[a][i]=aux;
     }
  }

  if(b!=x){
  y++;l[y][0]=0;l[y][1]=b;l[y][2]=x;
     for(i=1;i<=n;i++){
     aux=m[i][x];
     m[i][x]=m[i][b];
     m[i][b]=aux;
     }

  }


 }

FILE *g=fopen("grozavesti.out","w");

fprintf(g,"%d\n",y);

for(i=1;i<=y;i++){
if(l[i][0]==1){
fprintf(g,"C ");

fprintf(g,"%d ",l[i][1]);

fprintf(g,"%d\n",l[i][2]);

}

else{
fprintf(g,"L ");
fprintf(g,"%d ",l[i][1]);
fprintf(g,"%d\n",l[i][2]);
}

}


fclose(g);


return 0;
}