Cod sursa(job #170084)

Utilizator tm_raduToma Radu tm_radu Data 2 aprilie 2008 13:14:37
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <stdio.h>
#define NM 1001

int n;
int i, j, k;
int imin, min;
int a[NM], nrs;
struct e {
    char c;
    int x, y;
} sol[2*NM];
    
int main()
{
    freopen("grozavesti.in", "r", stdin);
    freopen("grozavesti.out", "w", stdout);
    scanf("%d", &n);
    for ( i = 1; i <= n; i++ )
        for ( j = 1; j <= n; j++ )
            scanf("%d", &k),
            a[i] = (i == j ? k : a[i]);
    
    for ( i = 1; i <= n; i++ )
    {
        min = a[i], imin = -1;
        for ( j = i+1; j <= n; j++ )
            if ( min > a[j] )
                min = a[j], imin = j;
        if ( imin != -1 )
        {
            nrs++, sol[nrs].c = 'C', sol[nrs].x = i, sol[nrs].y = imin;
            nrs++, sol[nrs].c = 'L', sol[nrs].x = i, sol[nrs].y = imin;
            k = a[i], a[i] = a[imin], a[imin] = k;
        }
    }
    printf("%d\n", nrs);
    for ( i = 1; i <= nrs; i++ )
        printf("%c %d %d\n", sol[i].c, sol[i].x, sol[i].y);
    
    return 0;
}