Pagini recente » Cod sursa (job #248173) | Cod sursa (job #529823) | Cod sursa (job #922478) | Cod sursa (job #279785) | Cod sursa (job #120554)
Cod sursa(job #120554)
#include <stdio.h>
long n, i, j, nr_mutari, k, min, mini, g, l, x[500][500];
struct lol
{
char c;
long first, second;
};
lol mutare[1000];
void move_c(long a, long b)
{
long i, aux[500];
for (i = 1; i <= n; i ++)
aux[i] = x[i][a];
for (i = 1; i <= n; i ++)
x[i][a] = x[i][b];
for (i = 1; i <= n; i ++)
x[i][b] = aux[i];
}
void move_l(long a, long b)
{
long i, aux[500];
for (i = 1; i <= n; i ++)
aux[i] = x[a][i];
for (i = 1; i <= n; i ++)
x[a][i] = x[b][i];
for (i = 1; i <= n; i ++)
x[b][i] = aux[i];
}
int main()
{
freopen ("grozavesti.in", "rt", stdin);
freopen ("grozavesti.out", "wt", stdout);
scanf("%ld", &n);
for (i = 1; i <= n; i ++)
for (j = 1; j <= n; j ++)
scanf("%ld", &x[i][j]);
for (k = 1; k <= n; k ++)
{
min = 2147000000;
for (i = k; i <= n; i ++)
if (x[i][i] < min)
{
min = x[i][i];
mini = i;
}
if (mini != k)
{
mutare[++ nr_mutari].c = 'C';
mutare[nr_mutari].first = k;
mutare[nr_mutari].second = mini;
move_c(k, mini);
mutare[++ nr_mutari].c = 'L';
mutare[nr_mutari].first = k;
mutare[nr_mutari].second = mini;
move_l(k, mini);
}
}
printf("%ld\n", nr_mutari);
for (i = 1; i <= nr_mutari; i ++)
printf("%c %ld %ld\n", mutare[i].c, mutare[i].first, mutare[i].second);
return 0;
}