Pagini recente » Cod sursa (job #1214453) | Cod sursa (job #322380) | Cod sursa (job #3273251) | Cod sursa (job #2722283) | Cod sursa (job #115443)
Cod sursa(job #115443)
#include<stdio.h>
long n,i,j,u,sortat,aux,k,nr,v[90001],l[90001],c[90001],sol[3][601],a[301][301];
char ch[601];
int main()
{
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
scanf("%ld",&v[++u]);
l[u]=i;
c[u]=j;
}
do
{
sortat=1;
for(i=1;i<u;i++)
if(v[i]>v[i+1])
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
aux=l[i];
l[i]=l[i+1];
l[i+1]=aux;
aux=c[i];
c[i]=c[i+1];
c[i+1]=aux;
sortat=0;
}
}while(!sortat);
nr=1;
for(i=1;i<=u;i++)
if(a[l[i]][c[i]]==0)
{
for(j=1;j<=n;j++)
a[j][c[i]]=1;
for(j=1;j<=n;j++)
a[l[i]][j]=1;
if(l[i]==nr && c[i]!=nr) //elem se afla pe linia nr si coloana != de nr
{
ch[++k]='C';
sol[1][k]=c[i];
sol[2][k]=nr;
nr++;
}
else
if(l[i]!=nr && c[i]==nr)//elem se afla pe col nr si linia !=nr
{
ch[++k]='L';
sol[1][k]=l[i];
sol[2][k]=nr;
nr++;
}
else //elem nu se afla pe linia nr si col nr
if(c[i]!=nr && l[i]!=nr)
{
ch[++k]='C';
sol[1][k]=c[i];
sol[2][k]=nr;
ch[++k]='L';
sol[1][k]=l[i];
sol[2][k]=nr;
nr++;
}
else
nr++;
}
printf("%ld\n",k);
for(i=1;i<=k;i++)
printf("%c %ld %ld\n",ch[i],sol[1][i],sol[2][i]);
return 0;
}