Pagini recente » Cod sursa (job #1954928) | Cod sursa (job #1274782) | Flux si cuplaj | Cod sursa (job #3149159) | Cod sursa (job #1828428)
#include <cstdio>
#include <algorithm>
#define VMax 600
#define NMax 300
using namespace std;
struct abc { int v,p; };
abc a[NMax+1];
abc L[VMax+1];
abc C[VMax+1];
int b[NMax+1];
int nr;
void Swap(abc& x, abc& y)
{
++nr;
L[nr].v = C[nr].v = x.p;
L[nr].p = C[nr].p = y.p;
int aux;
aux = x.v;
x.v = y.v;
y.v = aux;
}
int main(){
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
int i,j,x,N;
scanf("%d",&N);
for(i = 1; i <= N; ++i)
for(j = 1; j <= N; ++j)
{
scanf("%d",&x);
if(i==j)
{
a[i].v = x;
a[i].p = i;
}
}
for(i = 1; i <= N; ++i) b[i] = a[i].v;
sort(b+1,b+N+1);
for(i = 1; i <= N; ++i)
if( a[i].v != b[i] )
{
for(j = i+1; j <= N; ++j)
if( a[j].v == b[i] ) break;
Swap(a[i], a[j]);
}
printf("%d\n", 2*nr);
for(i = 1; i <= nr; ++i)
{
printf("C %d %d\n", C[i].v, C[i].p);
printf("L %d %d\n", L[i].v, L[i].p);
}
return 0;
}