Pagini recente » Cod sursa (job #3184372) | Cod sursa (job #351298) | Cod sursa (job #2050530) | Cod sursa (job #852813) | Cod sursa (job #187372)
Cod sursa(job #187372)
#include <cstdio>
#include <algorithm>
#define MAX_N 301
#define INF 1000002
using namespace std;
int A[MAX_N][MAX_N], N ,nrs;
struct schimb{char c; int i1,i2;}S[2*MAX_N];
void read()
{
scanf("%d\n",&N);
for(int i=0; i<N; i++)
for(int j=0; j<N; j++)
scanf("%d",&A[i][j]);
}
void schlin(int i, int j)
{
for(int k=0; k<N; k++)
swap(A[i][k],A[j][k]);
}
void schcol(int i,int j)
{
for(int k=0; k<N; k++)
swap(A[k][i],A[k][j]);
}
void find_min(int x, int &ik, int &jk)
{
int min = INF;
for(int i=x; i<N; i++)
for(int j=x; j<N; j++)
if(A[i][j] < min)
min = A[i][j], ik = i, jk = j;
}
void solve()
{
int i,j;
for(int x=0; x<N; x++)
{
find_min(x,i,j);
if(i - x)
{
schlin(i,x);
S[nrs++].c = 'L';
S[nrs].i1 = i;
S[nrs].i2 = x;
}
if(j - x)
{
schcol(j,x);
S[nrs++].c = 'C';
S[nrs].i1 = j;
S[nrs].i2 = x;
}
}
printf("%d\n",nrs);
for(int i=0; i<nrs; i++)
printf("%c %d %d\n",S[i].c,S[i].i1,S[i].i2);
}
int main()
{
freopen("grozavesti.in","rt",stdin);
freopen("grozavesti.out","wt",stdout);
read();
solve();
}