Pagini recente » Cod sursa (job #2059927) | Cod sursa (job #1317564) | Cod sursa (job #2537589) | Cod sursa (job #2631369) | Cod sursa (job #115569)
Cod sursa(job #115569)
#include<stdio.h>
long n,i,j,u,sortat,aux,k,nr,v[91],l[91],c[91],sol[3][61],a[31][31];
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 && a[nr][nr]==0) //elem se afla pe linia nr si coloana != de nr
{
ch[++k]='C';
sol[1][k]=c[i];
sol[2][k]=nr;
for(j=nr;j<=n;j++)
{
a[j][nr]=1;
a[nr][j]=1;
}
nr++;
}
else
if(l[i]!=nr && c[i]==nr && a[nr][nr]==0)//elem se afla pe col nr si linia !=nr
{
ch[++k]='L';
sol[1][k]=l[i];
sol[2][k]=nr;
for(j=nr;j<=n;j++)
{
a[j][nr]=1;
a[nr][j]=1;
}
nr++;
}
else //elem nu se afla pe linia nr si col nr
if(c[i]!=nr && l[i]!=nr && a[nr][nr]==0)
{
ch[++k]='C';
sol[1][k]=c[i];
sol[2][k]=nr;
ch[++k]='L';
sol[1][k]=l[i];
sol[2][k]=nr;
for(j=nr;j<=n;j++)
{
a[j][nr]=1;
a[nr][j]=1;
}
nr++;
}
else
{
for(j=nr;j<=n;j++)
{
a[j][nr]=1;
a[nr][j]=1;
}
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;
}