Cod sursa(job #1174948)

Utilizator DanielRusuDaniel Rusu DanielRusu Data 24 aprilie 2014 11:26:46
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <cstdio>

using namespace std;

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

int n, v[310], i, j, nr, mx, poz;

struct comenzi {
    int tip, x, y;
};

comenzi c[1000];

int main() {
    fscanf(fin, "%d", &n);

    for(i = 1;i <= n;i++) {
        for(j = 1;j <= n;j++) {
            fscanf(fin, "%d", &nr);

            if(i == j) {
                v[i] = nr;
            }
        }
    }

    nr = 0;

    while(n > 1) {
        mx = poz = 0;

        for(i = 1;i <= n;i++) {
            if(mx <= v[i]) {
                poz = i;
                mx = v[i];
            }
        }

        if(poz != n) {
            c[nr + 1].tip = 1;
            c[nr + 1].x = poz;
            c[nr + 1].y = n;
            c[nr + 2].tip = 2;
            c[nr + 2].x = poz;
            c[nr + 2].y = n;

            nr += 2;
        }

        --n;
    }

    fprintf(fout, "%d\n", nr);

    for(i = 1;i <= nr;i++) {
        if(c[i].tip == 1) fprintf(fout, "L %d %d\n", c[i].x, c[i].y);
        else fprintf(fout, "C %d %d\n", c[i].x, c[i].y);
    }

    fclose(fin);
    fclose(fout);

    return 0;
}