Pagini recente » Cod sursa (job #1405197) | Cod sursa (job #1813751) | Cod sursa (job #1015258) | Cod sursa (job #2396725) | Cod sursa (job #116247)
Cod sursa(job #116247)
#include <stdio.h>
#define infinit 2000000000
int A[310][310];
int V[3][610];
int N, i, j, min, xmin, ymin, aux, k, ind, k2;
void read()
{
freopen("grozavesti.in", "r", stdin);
scanf("%d", &N);
for (i = 1; i <= N; ++i)
for (j = 1; j <= N; j++)
scanf("%d", &A[i][j]);
}
void solve()
{
for (k = 1; k <= N; k++)
{
// vreau sa pun pe pozitia (k, k) elementul minim din matrice
min = xmin = ymin = infinit;
for (i = k; i <= N; i++)
for (j = k; j <= N; j++)
if (A[i][j] <= min)
{
min = A[i][j];
xmin = i;
ymin = j;
}
// interschimb linia i cu linia k
i = xmin;
if (i != k)
{
++ind;
k2 = k;
if (i > k2)
{
aux = i;
i = k2;
k2 = aux;
}
V[0][ind] = i;
V[1][ind] = k2;
V[2][ind] = 0;
for (j = 1; j <= N; j++)
{
aux = A[i][j];
A[i][j] = A[k][j];
A[k][j] = aux;
}
}
j = ymin;
if (j != k)
{
++ind;
k2 = k;
if (j > k2)
{
aux = j;
j = k2;
k2 = aux;
}
V[0][ind] = j;
V[1][ind] = k2;
V[2][ind] = 1;
for (i = 1; i <= N; i++)
{
aux = A[i][j];
A[i][j] = A[i][k];
A[i][k] = aux;
}
}
}
}
void write()
{
freopen("grozavesti.out", "w", stdout);
printf("%d\n", ind);
for (i = 1; i <= ind; i++)
{
if (V[2][i] == 0)
printf("L ");
else
printf("C ");
printf("%d %d\n", V[0][i], V[1][i]);
}
}
int main()
{
read();
solve();
write();
return 0;
}