Pagini recente » Cod sursa (job #2589662) | Cod sursa (job #2115762) | Cod sursa (job #477609) | Cod sursa (job #1930510) | Cod sursa (job #309031)
Cod sursa(job #309031)
#include<stdio.h>
#define dim 301
using namespace std;
int v[dim],o[dim],b[dim],w[dim],n;
void mergesort(int i, int m, int j)
{int x=i,k=1,y=m+1;
while((x<=m)&&(y<=j))
if(v[x]<v[y])
{b[k++]=v[x++];w[k-1]=o[x-1];}
else
{b[k++]=v[y++];w[k-1]=o[y-1];}
while(x<=m)
{b[k++]=v[x++];w[k-1]=o[x-1];}
while(y<=j)
{b[k++]=v[y++];w[k-1]=o[y-1];}
int t=i;
for(k=1;k<=(j-i)+1;k++)
{v[t++]=b[k];o[t-1]=w[k];}
}
void divimp(int i, int j)
{if(i<j)
{int m=(i+j)>>1;
divimp(i,m);
divimp(m+1,j);
mergesort(i,m,j);
}
}
int main()
{int k,i,j,aux,sol[dim],x;
FILE*f=fopen("grozavesti.in","r");
FILE*g=fopen("grozavesti.out","w");
fscanf(f,"%d",&n);
//k=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j) fscanf(f,"%d",&v[i]),o[i]=i;
else fscanf(f,"%d",&x);
divimp(1,n);
k=0;
for(i=1;i<=n;i++)
if(i!=o[i])
{for(j=i+1;j<=n;j++)
if(i==o[j])
{aux=o[i];o[i]=o[j];o[j]=aux;
sol[++k]=o[i];sol[++k]=o[j];
break;
}
}
fprintf(g,"%d\n",k/2);
for(i=1;i<=k;i+=2)
{fprintf(g,"C %d %d\n",sol[i],sol[i+1]);
fprintf(g,"L %d %d\n",sol[i],sol[i+1]);
}
fclose(f);
fclose(g);
return 0;
}