Pagini recente » Cod sursa (job #1662990) | Cod sursa (job #1563832) | Cod sursa (job #1848406) | Cod sursa (job #2337348) | Cod sursa (job #115732)
Cod sursa(job #115732)
#include <stdio.h>
long a[303][303], n, contor, min, l, c;
typedef struct
{
long op, i, j;
} solutie;
solutie sol[700];
void interschimb_coloane(long x, long y)
{
int i;
for (i = 1; i <= n; i++)
{
a[i][0] = a[i][x];
a[i][x] = a[i][y];
a[i][y] = a[i][0];
}
}
void interschimb_linii(long x, long y)
{
int i;
for (i = 1; i <= n; i++)
{
a[0][i] = a[x][i];
a[x][i] = a[y][i];
a[y][i] = a[0][i];
}
}
void minim(long x)
{
long i, j;
min = 1000005;
for (i = x; i <= n; i++)
for (j = x; j <= n; j++)
if (min > a[i][j])
{
min = a[i][j];
l = i;
c = j;
}
}
int main()
{
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
scanf("%ld", &n);
long i, j;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++) scanf("%ld",&a[i][j]);
for (i = 1; i <= n; i++)
{
minim(i);
if (c != i && c > 0)
{
interschimb_coloane(i,c);
sol[++contor].op = 1;
sol[contor].i = i;
sol[contor].j = c;
}
if (l != i && l > 0)
{
interschimb_linii(i,l);
sol[++contor].op = 2;
sol[contor].i = i;
sol[contor].j = l;
}
}
char x;
printf("%ld\n",contor);
for (i = 1; i <= contor; i++)
{
if (sol[i].op == 1) x = 'C';
else x = 'L';
printf("%c %ld %ld\n", x, sol[i].i, sol[i].j);
}
return 0;
}