Cod sursa(job #155916)

Utilizator katakunaCazacu Alexandru katakuna Data 12 martie 2008 11:27:23
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<stdio.h>

long int a,b,nr,aux,sol[600][3],l,c,m[100][100],i,j,ii,n,min;


int main(){



FILE *f=fopen("grozavesti.in","r");

fscanf(f,"%ld",&n);

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

fclose(f);


  for(ii=1;ii<=n;ii++){
  //stab min
  min=1000005;

    for(i=ii;i<=n;i++){

      for(j=ii;j<=n;j++){

       if(m[i][j]<min&&m[i][j]>=m[ii-1][ii-1]){
       min=m[i][j];
       l=i;
       c=j;
       }

      }

    }


   if(ii!=l){
   nr++;
   sol[nr][0]='L';
   sol[nr][1]=ii;
   sol[nr][2]=l;

     for(j=ii;j<=n;j++){
     aux=m[ii][j];
     m[ii][j]=m[l][j];
     m[l][j]=aux;
     }

   }

   if(ii!=c){
   nr++;
   sol[nr][0]='C';
   sol[nr][1]=ii;
   sol[nr][2]=c;

     for(i=ii;i<=n;i++){
     aux=m[i][ii];
     m[i][ii]=m[i][c];
     m[i][c]=aux;
     }

   }


  }




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

  for(i=1;i<=nr;i++){

   if(sol[i][0]=='C')fprintf(g,"C ");
   else fprintf(g,"L ");

   b=sol[i][2];
   a=sol[i][1];
   fprintf(g,"%ld %ld\n",a,b);



  }

fclose(g);

return 0;
}