Cod sursă (job #810264)

Utilizator avatar bogdan_ Goian Bogdan bogdan_ IP ascuns
Problemă Domino Compilator cpp-32 | 1,21 kb
Rundă Arhiva de probleme Status evaluat
Dată 20 feb. 2025 21:35:49 Scor 44
#include <bits/stdc++.h>
using namespace std;

ifstream fin("domino.in");
ofstream fout("domino.out");

int main() {
    int N, K1, K2;
    fin >> N >> K1 >> K2;
    vector<pair<int, int>> v(N);

    // Citim piesele
    for (int i = 0; i < N; i++) {
        fin >> v[i].first >> v[i].second;
    }

    // Eliminam K2 piese
    for (int i = 0; i < K2; i++) {
        int min_index = -1;
        for (int j = 0; j < v.size(); j++) {
            if (min_index == -1 || (v[j].first * 10 + v[j].second) < (v[min_index].first * 10 + v[min_index].second)) {
                min_index = j;
            }
        }
        v.erase(v.begin() + min_index);  // Eliminam piesa cu valoarea minima
    }

    // Rotim piesele (daca avem K1 rota?ii disponibile)
    for (int i = 0; i < v.size() && K1 > 0; i++) {
        if (v[i].first < v[i].second) {
            swap(v[i].first, v[i].second);  // Rotim piesa
            K1--;
        }
    }

    // Construim cel mai mare numar posibil din piesele ramase
    string result = "";
    for (const auto& p : v) {
        result += to_string(p.first) + to_string(p.second);
    }

    // Scriem rezultatul
    fout << result << endl;

    return 0;
}