Pagini recente » Cod sursa (job #217666) | Cod sursa (job #43251) | Cod sursa (job #2744992) | Cod sursa (job #1290457) | Cod sursa (job #115383)
Cod sursa(job #115383)
#include<stdio.h>
#include<values.h>
FILE*f=fopen("grozavesti.in","r");
FILE*g=fopen("grozavesti.out","w");
long a[300][300],n,sol[700][5],nrsol;
void linii(int p, int k)
{
int i; int aux;
for(i=1;i<=n;++i)
{
aux=a[p][i];
a[p][i]=a[k][i];
a[k][i]=aux;
}
}
void coloane(long p, long k)
{ int aux;
for(int j=1;j<=n;++j)
{
aux=a[j][p];
a[j][p]=a[j][k];
a[j][k]=aux;
}
}
void read()
{
int i,j;
fscanf(f,"%ld",&n);
for(i=0;i<=n+1;++i)
{
a[0][i]=a[i][0]=0;
}
for(i=1;i<=n;++i)
for(j=1;j<=n;++j) fscanf(f,"%ld",&a[i][j]);
}
void solve()
{
long i,j,p,k;
for(i=1;i<=n;++i)
{
p=i;
for(j=i+1;j<=n;++j)
if(a[j][i]<a[p][i] && a[j][i]>=a[i-1][i-1]) p=j;
if(p!=i)
{
linii(i,p);
sol[++nrsol][1]=1;
sol[nrsol][2]=i;
sol[nrsol][3]=p;
}
p=i;
for(j=i+1;j<=n;++j)
if(a[i][j]>a[i][p] && a[i][j]>=a[i-1][i-1]) p=j;
if(p!=i)
{
coloane(i,p);
sol[++nrsol][1]=2;
sol[nrsol][2]=i;
sol[nrsol][3]=p;
}
}
fprintf(g,"%ld\n",nrsol);
for(i=1;i<=nrsol;++i)
{
if(sol[i][1]==1) fprintf(g,"L ");
else fprintf(g,"C ");
fprintf(g,"%ld %ld\n",sol[i][2],sol[i][3]);
}
}
int main()
{
read();
solve();
return 0;
}