Cod sursa(job #115336)

Utilizator Adela_BaciuAdela Baciu Adela_Baciu Data 16 decembrie 2007 12:13:38
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 2, Clasele 5-8 Marime 1.7 kb
#define DMAX 400
#include<stdio.h>
long i1,j1,ok,aux,k,n,i,j,nr,ci[DMAX],cf[DMAX],li[DMAX],lf[DMAX],a[DMAX][DMAX];
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]);
  }

 /*for(i=1;i<=n;i++)
  {
   j=i;
   if(a[i][i]<a[i-1][i-1])
    {
     ok=1;
     for(i1=1;i1<=n;i1++)
      for(j1=1;j1<=n;j1++)
       {
	if((a[i1][j1]>=a[i-1][j-1])&&((j1!=i1)||(j1==i1&&i1!=i)))
	 {
	  if(i1==i)
	   {
	    nr++;
	    li[++li[0]]=i;
	    lf[++lf[0]]=i1;
	    for(k=1;k<=n;k++)
	     {
	      aux=a[i][k];
	      a[i][k]=a[i1][k];
	      a[i1][k]=aux;
	     }
	    ok=0;
	   }
	  else
	   {
	    if(j1==j)
	     {
	      nr++;
	      ci[++ci[0]]=j;
	      cf[++cf[0]]=j1;
	      for(k=1;k<=n;k++)
	       {
		aux=a[k][j];
		a[k][j]=a[k][j1];
		a[k][j1]=aux;
	       }
	    ok=0;
	     }
	   }
	 }
	 if(ok==0)
	  break;
	 else
	  {

	  }
       }
    }
  }*/
 for(i=1;i<=n;i++)
  {
   if(a[i][i]<a[i-1][i-1])
    {
     ok=1;
     for(i1=i+1;i1<=n&&ok==1;i1++)
      if(a[i1][i]>=a[i-1][i-1])
       {
	nr++;
	li[++li[0]]=i;
	lf[++lf[0]]=i1;
	for(k=1;k<=n;k++)
	 {
	  aux=a[i][k];
	  a[i][k]=a[i1][k];
	  a[i1][k]=aux;
	 }
	ok=0;
       }
     for(j1=i+1;j1<=n;j1++)
      if(a[i][j1]>=a[i-1][i-1])
       {
	nr++;
	ci[++li[0]]=i;
	cf[++lf[0]]=j1;
	for(k=1;k<=n;k++)
	 {
	  aux=a[k][i];
	  a[k][i]=a[k][i1];
	  a[k][i1]=aux;
	 }
	ok=0;
       }
    }
  }

 printf("%ld\n",nr);
 for(i=1;i<=ci[0];i++)
  printf("C %ld %ld\n",ci[i],cf[i]);
 for(i=1;i<=li[0];i++)
  printf("L %ld %ld\n",li[i],lf[i]);
 fcloseall();
 return 0;
}