Cod sursa(job #124735)

Utilizator DastasIonescu Vlad Dastas Data 19 ianuarie 2008 19:57:12
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <cstdio>

const int maxn = 301;

FILE *in = fopen("grozavesti.in","r"), *out = fopen("grozavesti.out","w");

int n;

int a[maxn][maxn];
int m[2*maxn][2];
int w[2*maxn];

void read()
{
    fscanf(in, "%d", &n);

    for ( int i = 1; i <= n; ++i )
        for ( int j = 1; j <= n; ++j )
            fscanf(in, "%d", &a[i][j]);
}

int main()
{
    read();

    int cnt = 0;
    for ( int x = 1; x <= n; ++x )
    {
        int min = a[x][x];
        int p = x;

        for ( int i = x; i <= n; ++i )
            if ( a[i][i] < min )
                min = a[i][i], p = i;

            if ( p != x )
            {
                ++cnt;
                w[cnt] = 1; // c
                m[cnt][0] = p;
                m[cnt][1] = x;

                ++cnt;
                w[cnt] = 2; // l
                m[cnt][0] = p;
                m[cnt][1] = x;
            }
    }

    fprintf(out, "%d\n", cnt);
    for ( int i = 1; i <= cnt; ++i )
    {
        if ( w[i] == 1 )
            fprintf(out, "C ");
        else
            fprintf(out, "L ");

        fprintf(out, "%d %d\n", m[i][0], m[i][1]);
    }


	return 0;
}