Cod sursa(job #3154538)

Utilizator SSKMFSS KMF SSKMF Data 4 octombrie 2023 22:55:33
Problema Grozavesti Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.48 kb
#include <fstream>
using namespace std;

ifstream cin ("grozavesti.in");
ofstream cout ("grozavesti.out");

struct { char tip; int indice_1 , indice_2; } mutari[601];
int matrice[301][301];

int main ()
{
    int lungime;
    cin >> lungime;
    
    for (int linie = 1 ; linie <= lungime ; linie++)
        for (int coloana = 1 ; coloana <= lungime ; coloana++)
            cin >> matrice[linie][coloana];

    int numar_mutari = 0;
    for (int indice_1 = 1 ; indice_1 < lungime ; indice_1++)
    {   
        int indice_minim = indice_1;
        for (int indice_2 = indice_1 + 1 ; indice_2 <= lungime ; indice_2++)
            if (matrice[indice_2][indice_2] < matrice[indice_minim][indice_minim])
                indice_minim = indice_2;

        if (indice_minim != indice_1)
        {
            mutari[++numar_mutari].tip = 'L';
            mutari[numar_mutari].indice_1 = indice_1;
            mutari[numar_mutari].indice_2 = indice_minim;

            mutari[++numar_mutari].tip = 'C';
            mutari[numar_mutari].indice_1 = indice_1;
            mutari[numar_mutari].indice_2 = indice_minim;

            swap(matrice[indice_1][indice_1] , matrice[indice_minim][indice_minim]);
        }
    }

    cout << numar_mutari << '\n';

    for (int indice = 1 ; indice <= numar_mutari ; indice++)
        cout << mutari[indice].tip << ' ' << mutari[indice].indice_1 << ' ' << mutari[indice].indice_2 << '\n';

    cout.close(); cin.close();
    return 0;
}