Pagini recente » Cod sursa (job #520576) | Cod sursa (job #1494723) | Cod sursa (job #1117041) | Cod sursa (job #119328) | Cod sursa (job #116392)
Cod sursa(job #116392)
#include<stdio.h>
#define N 301
int n,a[N][N],nr,k1,aux;
struct vec{
char c;
int x,y;
}poz[N];
void read()
{
int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
}
void solve()
{
int i,j,k,min,p1,p2;
for(i=1;i<=n;i++)
{
min=a[i][i];
p1=p2=i;
for(j=i;j<=n;j++)
for(k=i;k<=n;k++)
if(a[j][k]<min)
{
min=a[j][k];
p1=j;
p2=k;
}
//a[p1][p2]<->a[1][1];
if(p1==i&&p2!=i)
{
for(j=i;j<=n;j++)
{
aux=a[j][p1];
a[j][p1]=a[j][p2];
a[j][p2]=aux;
}
poz[++k1].c='L';
poz[k1].x=p1;
poz[k1].y=p2;
nr++;
}
if(p1!=i&&p2==i)
{
for(k=i;k<=n;k++)
{
aux=a[p1][j];
a[p1][j]=a[p2][j];
a[p2][j]=aux;
}
poz[++k1].c='C';
poz[k1].x=p1;
poz[k1].y=p2;
nr++;
}
if(p1!=i&&p2!=i&&p1!=p2)
{
for(j=i;j<=n;j++)
{
aux=a[j][p1];
a[j][p1]=a[j][1];
a[j][1]=aux;
}
for(k=i;k<=n;k++)
{
aux=a[p1][j];
a[p1][j]=a[1][j];
a[1][j]=aux;
}
poz[++k1].c='L';
poz[k1].x=p1;
poz[k1].y=p2;
poz[++k1].c='C';
poz[k1].x=p1;
poz[k1].y=p2;
nr+=2;
}
}
printf("%d\n",nr);
for(i=1;i<=k1;i++)
printf("%c %d %d\n",poz[i].c,poz[i].x,poz[i].y);
}
int main()
{
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
read();
solve();
return 0;
}