Cod sursa(job #118469)

Utilizator pandaemonAndrei Popescu pandaemon Data 25 decembrie 2007 18:50:52
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
#include<iostream.h>
#define LMAX 301
int n,i,j,sol; long mat[LMAX][LMAX],k;  int s[2*LMAX][4];



void algoritm(int x)
{long minim=1000001,indl=x,indc=x,var;

 for(i=x;i<=n;i++)
 for(j=x;j<=n;j++)
 if(mat[i][j]<minim) {minim=mat[i][j]; indl=i; indc=j;}


 if(indl!=x)
 {k++; s[k][0]='L'; s[k][1]=x; s[k][2]=indl;
 for(i=x;i<=n;i++) {var=mat[x][i];
		    mat[x][i]=mat[indl][i]; mat[indl][i]=var;} }
 if(indc!=x)
 {k++; s[k][0]='C'; s[k][1]=x; s[k][2]=indc;
 for(i=x;i<=n;i++) {var=mat[i][x];
		    mat[i][x]=mat[i][indc]; mat[i][indc]=var;} }

 }


main()
{freopen("grozavesti.in","r",stdin);
 freopen("grozavesti.out","w",stdout);

 scanf("%d",&n);
 for(i=1;i<=n;i++)
 for(j=1;j<=n;j++) scanf("%ld",&mat[i][j]);

 for(int x=1;x<n;x++)
 algoritm(x);
 printf("%d\n",k);
 for(i=1;i<=k;i++)
 printf("%c %d %d\n", s[i][0],s[i][1],s[i][2]);

 }