Pagini recente » Cod sursa (job #358077) | Cod sursa (job #1012615) | Cod sursa (job #35703) | Cod sursa (job #1321378) | Cod sursa (job #196998)
Cod sursa(job #196998)
#include <stdio.h>
#define NMAX 310
int N;
int a[NMAX][NMAX];
int nsol;
char sol[2 * NMAX];
int xx[2 * NMAX];
int yy[2 * NMAX];
inline void SWAP(int &a, int &b) { int aux = a; a = b; b = aux; }
void swap_lin(int x, int y)
{
if (x == y) return;
nsol++; sol[nsol] = 'L'; xx[nsol] = x; yy[nsol] = y;
for (int i = 1; i <= N; i++) SWAP(a[x][i], a[y][i]);
}
void swap_col(int x, int y)
{
if (x == y) return;
nsol++; sol[nsol] = 'C'; xx[nsol] = x; yy[nsol] = y;
for (int i = 1; i <= N; i++) SWAP(a[i][x], a[i][y]);
}
int main()
{
int i, j, k, ii, jj, mn;
freopen("grozavesti.in", "r", stdin);
freopen("grozavesti.out", "w", stdout);
scanf("%d", &N);
for (i = 1; i <= N; i++)
for (j = 1; j <= N; j++)
scanf("%d", &a[i][j]);
for (k = 1; k < N; k++) {
mn = a[k][k]; ii = k; jj = k;
for (i = k; i <= N; i++)
for (j = k; j <= N; j++)
if (a[i][j] < mn) mn = a[i][j], ii = i, jj = j;
swap_lin(k, ii);
swap_col(k, jj);
}
printf("%d\n", nsol);
for (i = 1; i <= nsol; i++) printf("%c %d %d\n", sol[i], xx[i], yy[i]);
return 0;
}