Pagini recente » Cod sursa (job #1410530) | Cod sursa (job #3161435) | Cod sursa (job #1853051) | Cod sursa (job #639807) | Cod sursa (job #330299)
Cod sursa(job #330299)
#include <cstdio>
#include <cstring>
#define file_in "grozavesti.in"
#define file_out "grozavesti.out"
#define Nmax 310
struct g
{
char c;
int ind1,ind2;
}s[2*Nmax];
int n,ok,nr,nrsol;
int a[Nmax][Nmax];
int v[Nmax];
int nrm=0;
int bun()
{
int i;
for (i=2;i<=n;++i)
if (a[i][i]<a[i-1][i-1]) return 0;
return 1;
}
int main()
{
int i,j,x;
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d", &n);
nr=0;
memset(v,0,sizeof(v));
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
{
scanf("%d", &a[i][j]);
v[a[i][j]]++;
if (v[a[i][j]]==1) nr++;
}
nrsol=0;
nrm=1;
for (x=1;x<=nr && !bun() && nrm!=nr;++x)
{
ok=0;
if (v[x]!=0)
{
for (i=1;i<=n && !ok;++i)
for (j=1;j<=n && !ok;++j)
if (a[i][j]==x)
{
if (i==nrm && j==nrm) //e la locul lui
{
ok=1;
a[i][j]=0;
}
else
{
nrsol++;
s[nrsol].c='C';
s[nrsol].ind1=nrm;
s[nrsol].ind2=j;
nrsol++;
s[nrsol].c='L';
s[nrsol].ind1=nrm;
s[nrsol].ind2=i;
ok=1;
}
}
}
nrm++;
}
printf("%d\n", nrsol);
for (i=1;i<=nrsol;++i)
printf("%c %d %d\n", s[i].c,s[i].ind1,s[i].ind2);
fclose(stdin);
fclose(stdout);
return 0;
}