Pagini recente »
Istoria paginii runda/hard/clasament
|
Istoria paginii utilizator/dianaluta
|
Istoria paginii utilizator/pincucatalin
|
Borderou de evaluare (job #202284)
|
Cod sursă (job #810264)
Cod sursă (job
#810264)
#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;
}