Pagini recente » Borderou de evaluare (job #2073670) | Cod sursa (job #154038) | Cod sursa (job #2155673) | Cod sursa (job #3217085) | Cod sursa (job #128628)
Cod sursa(job #128628)
#include <fstream.h>
ifstream fin("grozavesti.in");
ofstream fout("grozavesti.out");
int a[300][300],n;
int sir[10000][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();
}
int mini(int x)
{
int min=10341;
for (int i=x;i<n;i++)
for (int j=x;j<n;j++)
if (a[i][j]<min && a[i][j]>=minim)
{
min=a[i][j];
l=i+1;
c=i+1;
}
return min;
}
void matrice (int i)
{
if (i==n)
return ;
minim=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]=l;
sir[nr][1]=i+1;
sir[nr][2]=1;
nr++;
}
if (c-1!=i)
{
for (int l=0;l<n;l++)
{
int aux=a[l][i];
a[l][i]=a[l][c-1];
a[l][c-1]=aux;
}
sir[nr][0]=c;
sir[nr][1]=i+1;
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]%2==1)
fout<<"L ";
else
fout<<"C ";
fout<<sir[i][0]<<" "<<sir[i][1]<<"\n";
}
fin.close();
fout.close();
return 0;
}