Cod sursa(job #1718174)

Utilizator cristina_borzaCristina Borza cristina_borza Data 16 iunie 2016 21:44:28
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <algorithm>
#include <fstream>
#include <vector>
#include <set>

using namespace std;

ifstream f("grozavesti.in");
ofstream g("grozavesti.out");

int x , n;

vector <pair <int , int> > ans;
vector <int> v1 , v2;

int main() {
    f >> n;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j) {
            f >> x;
            if (i == j) {
                v1.push_back(x);
                v2.push_back(x);
            }
        }
    }

    sort (v2.begin() , v2.end());
    int nr = v1.size();

    for (int i = 0; i < nr; ++i) {
        if (v1[i] != v2[i]) {
            for (int j = i + 1; j < nr; ++j) {
                if (v2[i] == v1[j]) {
                    ans.push_back(make_pair(i + 1, j + 1));
                    swap(v1[i] , v1[j]);
                    break;
                }
            }
        }
    }

    nr = ans.size();
    g << 2 * nr << '\n';

    for (int i = 0; i < nr; ++i) {
        g << "C " << ans[i].first << " " << ans[i].second << '\n' << "L " << ans[i].first << " " << ans[i].second << '\n';
    }
    return 0;
}