Pagini recente » Cod sursa (job #528625) | Cod sursa (job #255133) | Cod sursa (job #1426002) | Cod sursa (job #3388) | Cod sursa (job #115497)
Cod sursa(job #115497)
#include<stdio.h>
long i, j, n, a[301][301], lmin, cmin, k, aux, min, l, c, nr1, ok, nr2, sol1[601][3], sol2[601][3];
FILE *fin, *fout;
int main()
{
fin = fopen("grozavesti.in", "rt");
fout = fopen("grozavesti.out", "wt");
fscanf(fin, "%ld", &n);
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
fscanf(fin, "%ld", &a[i][j]);
for(k = 1; k < n; k++)
{
ok = 1;
min = a[k][k];
lmin = k;
cmin = k;
for(i = k; i <= n; i++)
for(j = k; j <= n; j++)
if(a[i][j] < min)
{
min = a[i][j];
lmin = i;
cmin = j;
}
if(lmin != k)
{
for(c = 1; c <= n; c++)
{
aux = a[lmin][c];
a[lmin][c] = a[k][c];
a[k][c] = aux;
}
nr1++;
sol1[nr1][1] = lmin;
sol1[nr1][2] = k;
ok = 0;
}
if(cmin != k && ok == 1)
{
for(l = 1; l <= n; l++)
{
aux = a[l][cmin];
a[l][cmin] = a[l][k];
a[l][k] = aux;
}
nr2++;
sol2[nr2][1] = k;
sol2[nr2][2] = cmin;
ok = 0;
}
}
fprintf(fout, "%ld", nr1 + nr2);
for(i = 1; i <= nr1; i++)
fprintf(fout, "L %ld %ld\n", sol1[i][1], sol1[i][2]);
for(i = 1; i <= nr2; i++)
fprintf(fout, "C %ld %ld\n", sol2[i][1], sol2[i][2]);
return 0;
}