Submission #1291744

#TimeUsernameProblemLanguageResultExecution timeMemory
1291744SSKMFCloud Computing (CEOI18_clo)C++20
100 / 100
207 ms1268 KiB
#include <bits/stdc++.h> using namespace std; struct Optiune { int termen , factor , cost; } sir[2][2001]; int64_t maxim[100001]; inline void Solve () { int cantitate_1; cin >> cantitate_1; for (int indice = 1 ; indice <= cantitate_1 ; indice++) { cin >> sir[0][indice].termen >> sir[0][indice].factor >> sir[0][indice].cost; } int cantitate_2; cin >> cantitate_2; for (int indice = 1 ; indice <= cantitate_2 ; indice++) { cin >> sir[1][indice].termen >> sir[1][indice].factor >> sir[1][indice].cost; } sort(sir[0] + 1 , sir[0] + cantitate_1 + 1 , [] (Optiune& optiune_1 , Optiune& optiune_2) -> bool { return optiune_1.factor > optiune_2.factor; }); sort(sir[1] + 1 , sir[1] + cantitate_2 + 1 , [] (Optiune& optiune_1 , Optiune& optiune_2) -> bool { return optiune_1.factor > optiune_2.factor; }); for (int ramas = 1 ; ramas <= 100000 ; ramas++) { maxim[ramas] = INT64_MIN; } for (int indice_1 = 1 , indice_2 = 1 , limita = 0 ; indice_2 <= cantitate_2 ; ) { if (sir[0][indice_1].factor >= sir[1][indice_2].factor) { for (int ramas = (limita += sir[0][indice_1].termen) ; ramas >= sir[0][indice_1].termen ; ramas--) { if (maxim[ramas - sir[0][indice_1].termen] != INT64_MIN) { maxim[ramas] = max(maxim[ramas] , maxim[ramas - sir[0][indice_1].termen] - sir[0][indice_1].cost); } } indice_1++; } else { for (int ramas = 0 ; ramas <= limita - sir[1][indice_2].termen ; ramas++) { if (maxim[ramas + sir[1][indice_2].termen] != INT64_MIN) { maxim[ramas] = max(maxim[ramas] , maxim[ramas + sir[1][indice_2].termen] + sir[1][indice_2].cost); } } indice_2++; } } int64_t rezultat = 0; for (auto& candidat : maxim) { rezultat = max(rezultat , candidat); } cout << rezultat; } int main () { ios :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int numar_teste = 1; // cin >> numar_teste; while (numar_teste--) { Solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...