Cod sursa(job #129116)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 28 ianuarie 2008 17:45:41
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <fstream>
using namespace std;

ifstream fin("grozavesti.in");
ofstream fout("grozavesti.out");

long a[305][305],n;
long sir[100000][4],minim=-123,l,c,nr=0;

void citire()
{
   fin>>n;
      for (int i=0;i<n;i++)
	for (int j=0;j<n;j++)
	    fin>>a[i][j];
      fin.close();
}

long mini(long x)
{
   loong min=1000010;
     for (int i=x;i<n;i++)
       for (int j=x;j<n;j++)
	  if (a[i][j]<min)
	  {
	     min=a[i][j];
	     l=i+1;
	     c=j+1;
	  }
   return min;
}

void matrice (int i)
{
  if (i==n)
     return  ;
   l=0;
   c=0;
  mini(i);
  if (l-1>i)
  {
      for (int k=0;k<n;k++)
      {
       int aux=a[l-1][k];
       a[l-1][k]=a[i][k];
       a[i][k]=aux;
      }
      sir[nr][0]=i+1;
      sir[nr][1]=l;
      sir[nr][2]=1;
      nr++;
  }

  if (c-1>i)
  {
       for (int ll=0;ll<n;ll++)
       {
	  int aux=a[ll][i];
	  a[ll][i]=a[ll][c-1];
	  a[ll][c-1]=aux;
       }
       sir[nr][0]=i+1;
       sir[nr][1]=c;
       sir[nr][2]=2;
       nr++;
  }
  matrice (i+1);

}

int main()
{
   citire();
   matrice(0);
   fout<<nr<<"\n";
   for (int i=0;i<nr;i++)
   {
      if (sir[i][2]==1)
	 fout<<"L ";
      else
	 fout<<"C ";
      fout<<sir[i][0]<<" "<<sir[i][1]<<"\n";
   }
   fin.close();
   fout.close();
   return 0;
}