Pagini recente » Cod sursa (job #588557) | Cod sursa (job #2288560) | Cod sursa (job #300368) | Cod sursa (job #1852547) | Cod sursa (job #863992)
Cod sursa(job #863992)
#include <stdio.h>
#include <algorithm>
#define NMax 310
using namespace std;
const char IN[]="grozavesti.in",OUT[]="grozavesti.out";
int N,L;
int v[NMax][NMax];
char s[2*NMax][40];
void swaprow(int x,int y){
for (int i=1;i<=N;++i)
swap(v[x][i],v[y][i]);
++L;
sprintf(s[L],"R %d %d",x,y);
}
void swapcol(int x,int y){
for (int i=1;i<=N;++i)
swap(v[i][x],v[i][y]);
++L;
sprintf(s[L],"C %d %d",x,y);
}
int main()
{
int i,j,k,x,y,Min;
freopen(IN,"r",stdin);
scanf("%d",&N);
for (i=1;i<=N;++i) for (j=1;j<=N;++j) scanf("%d",v[i]+j);
fclose(stdin);
freopen(OUT,"w",stdout);
for (k=1;k<=N;++k)
{
x=y=k;Min=v[x][y];
for (i=k;i<=N;++i) for (j=k;j<=N;++j) if (v[i][j]<Min)
x=i,y=j,Min=v[i][j];
if (x!=k) swaprow(x,k);
if (y!=k) swapcol(y,k);
}
freopen(OUT,"w",stdout);
printf("%d\n",L);
for (i=1;i<=L;++i) printf("%s\n",s[i]);
fclose(stdout);
return 0;
}