Cod sursa(job #116934)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 19 decembrie 2007 20:45:36
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<stdio.h>
long n,i,j,l,c,nr,aux,k,x,y,min=1000001,a[301][301],sol[3][601];
char ch[601];
int main()
{
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)
    scanf("%ld",&a[i][j]);
nr=1;
while(nr<=n)
  {
  min=1000001;
  for(x=nr;x<=n;x++)
    for(y=nr;y<=n;y++)
      if(a[x][y]<min)
	{
	l=x;
	c=y;
	min=a[x][y];
	}
  if(c!=nr)
    {
    for(i=1;i<=n;i++)
      {
      aux=a[i][nr];
      a[i][nr]=a[i][c];
      a[i][c]=aux;
      }
    sol[1][++k]=nr;
    sol[2][k]=c;
    ch[k]='C';
    }

    if(l!=nr)
      {
      for(j=1;j<=n;j++)
	{
	aux=a[nr][j];
	a[nr][j]=a[l][j];
	a[l][j]=aux;
	}
      sol[1][++k]=nr;
      sol[2][k]=l;
      ch[k]='L';
      }
  nr++;
  }
printf("%ld\n",k);
if(k)
  for(i=1;i<=k;i++)
    printf("%c %ld %ld\n",ch[i],sol[1][i],sol[2][i]);
else
  printf("0");
return 0;
}