Pagini recente » Cod sursa (job #1860491) | Cod sursa (job #1059266) | Cod sursa (job #2721299) | Cod sursa (job #2165350) | Cod sursa (job #115291)
Cod sursa(job #115291)
#include <stdio.h>
int a[31][31], n, contor;
typedef struct
{
int op, i, j;
} solutie;
solutie sol[700];
void interschimb_coloane(int x, int 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(int x, int 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];
}
}
int main()
{
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
scanf("%d", &n);
int i, j, min, poz;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++) scanf("%d",&a[i][j]);
for (i = 1; i <= n; i++)
{
min = 32000; poz = i;
for (j = i; j <= n; j++)
if (a[i][j] >= a[i-1][i-1])
if (min > a[i][j])
{
min = a[i][j]; poz = j;
}
if (poz != i)
{
interschimb_coloane(i,poz);
sol[++contor].op = 1;
sol[contor].i = i;
sol[contor].j = poz;
}
min = 32000; poz = i;
for (j = i; j <= n; j++)
if (a[j][i] >= a[i-1][i-1])
if (min > a[j][i])
{
min = a[j][i]; poz = j;
}
if (poz != i)
{
interschimb_linii(i,poz);
sol[++contor].op = 2;
sol[contor].i = i;
sol[contor].j = poz;
}
}
char c;
printf("%d\n",contor);
for (i = 1; i <= contor; i++)
{
if (sol[i].op == 1) c = 'C';
else c = 'L';
printf("%c %d %d\n", c, sol[i].i, sol[i].j);
}
return 0;
}