Cod sursa(job #127953)

Utilizator razvi9Jurca Razvan razvi9 Data 25 ianuarie 2008 15:30:30
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<string.h>
int a[301],b[301],x,n,i,j,aux,nc,ok;
int c[301][2];
int 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("%d",&x);
    if(i==j) a[i]=x,b[i]=i; }
 for(i=1;i<=n;i++)
  for(j=i+1;j<=n;j++)
   if(a[i]>a[j])
   {aux=a[i];a[i]=a[j];a[j]=aux;
    aux=b[i];b[i]=b[j];b[j]=aux;}
 do{ok=0;
    for(i=1;i<=n;i++)
     if(b[i]!=i)
     {nc++;ok=1;
      c[nc][0]=i;c[nc][1]=b[i];
      aux=b[i];
      b[i]=b[aux];
      b[aux]=aux;}
    }while(ok);
 printf("%d\n",nc*2);
 for(i=nc;i>=1;i--)
  printf("C %d %d\nL %d %d\n",c[i][0],c[i][1],c[i][0],c[i][1]);
 fclose(stdout);
 return 0;}