Cod sursa(job #155919)

Utilizator katakunaCazacu Alexandru katakuna Data 12 martie 2008 11:29:23
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 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,"L ");   
  
fprintf(g,"%d ",l[i][1]);   
  
fprintf(g,"%d\n",l[i][2]);   
  
}   
  
else{   
fprintf(g,"C ");   
fprintf(g,"%d ",l[i][1]);   
fprintf(g,"%d\n",l[i][2]);   
}   
  
}   
  
  
fclose(g);   
  
  
return 0;   
}