Cod sursa(job #1369504)

Utilizator EpictetStamatin Cristian Epictet Data 3 martie 2015 09:10:44
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>
using namespace std;
ifstream fin ("grozavesti.in");
ofstream fout ("grozavesti.out");
int N, x, nr, nrsol, V[310];
struct sol { char c; int s1, s2; } S[1000];

bool Verif()
{
    for (int i = 1; i <= N; i++)
    {
        if (V[i] < V[i-1]) return 0;
    }
    return 1;
}

int main()
{
    fin >> N;
    for (int i = 1; i <= N; i++)
    {
        for (int j = 1; j <= N; j++)
        {
            fin >> x;
            if (i == j) V[++nr] = x;
        }
    }

    int i = 1;
    while (!Verif())
    {
        int nr1, nr2, minim = V[i];
        for (int j = i + 1; j <= N; j++)
        {
            if (V[j] < minim)
            {
                minim = V[j];
                nr1 = i;
                nr2 = j;
            }
        }

        if (minim != V[i])
        {
            swap (V[nr1], V[nr2]);
            nrsol++;
            S[nrsol] = { 'C', nr1, nr2 };
            nrsol++;
            S[nrsol] = { 'L', nr1, nr2 };
        }
        i++;
    }

    fout << nrsol << '\n';
    for (i = 1; i <= nrsol; i++)
    {
        fout << S[i].c << ' ' << S[i].s1 << ' ' << S[i].s2 << '\n';
    }
    fout.close();
    return 0;
}