Pagini recente » Cod sursa (job #3218651) | Cod sursa (job #1954921) | Cod sursa (job #2559144) | Cod sursa (job #290965) | Cod sursa (job #1868149)
#include <cstdio>
#include <algorithm>
#define MAXN 301
#define INF 0x3f3f3f3f
using namespace std;
int v[MAXN][MAXN], n;
inline void swapCols(int a, int b){
for(int i=1; i<=n; ++i)
swap(v[i][a], v[i][b]);
}
inline void swapRows(int a, int b){
for(int i=1; i<=n; ++i)
swap(v[a][i], v[b][i]);
}
struct answer{
int a, b;
char type;
}ans[MAXN*2];
int main()
{
freopen("grozavesti.in", "r", stdin);
freopen("grozavesti.out", "w", stdout);
int step, i, j, minval, row, col, k = 0;
scanf("%d", &n);
for(i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
scanf("%d", &v[i][j]);
for(step=1; step<n; ++step)
{
minval = INF;
for(i=step; i<=n; ++i)
for(j=step; j<=n; ++j)
{
if(v[i][j] < minval)
{
minval = v[i][j];
row = i;
col = j;
}
}
if(row != step)
{
swapRows(row, step);
ans[++k].a = row;
ans[k].b = step;
ans[k].type = 'L';
}
if(col != step)
{
swapCols(col, step);
ans[++k].a = col;
ans[k].b = step;
ans[k].type = 'C';
}
}
printf("%d\n", k);
for(i=1; i<=k; ++i)
printf("%c %d %d\n", ans[i].type, ans[i].a, ans[i].b);
return 0;
}