Pagini recente » Cod sursa (job #847702) | Cod sursa (job #734991) | Cod sursa (job #2901788) | Cod sursa (job #716055) | Cod sursa (job #486847)
Cod sursa(job #486847)
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=302;
struct dp
{
int val,poz;
};
dp v[N];
int n,b[N],a[N][N];
bool comp(dp a,dp b)
{
return a.val<b.val;
}
void citire()
{
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
scanf("%d",&a[i][j]);
for(int i=1;i<=n;++i)
{
v[i].val=a[i][i];
v[i].poz=i;
}
}
void init()
{
sort(v+1,v+n+1,comp);
for(int i=1;i<=n;++i)
b[v[i].poz]=i;
}
void rez()
{
int nrc=0;
for(int i=1;i<=n;++i)
if(v[i].poz!=i)
{
nrc+=2;
v[b[i]].poz=v[i].poz;
b[v[i].poz]=b[i];
}
printf("%d\n",nrc);
init();
for(int i=1;i<=n;++i)
if(v[i].poz!=i)
{
printf("L %d %d\n",v[i].poz,i);
printf("C %d %d\n",v[i].poz,i);
v[b[i]].poz=v[i].poz;
b[v[i].poz]=b[i];
}
}
int main()
{
citire();
init();
rez();
return 0;
}