Submission #844379

#TimeUsernameProblemLanguageResultExecution timeMemory
844379vjudge1Pod starim krovovima (COCI20_psk)C++17
50 / 50
1 ms348 KiB
#include <iostream> #include <algorithm> #include <utility> using namespace std; int main(){ int64_t n, liq, *ans, index, ocount, total; pair<int64_t, int64_t> *glasses; cin >> n; glasses = new pair<int64_t, int64_t>[n]; total = 0; for (int i = 0; i < n; i++){ cin >> liq; total += liq; cin >> glasses[i].first; glasses[i].second = i; } std::sort(glasses, glasses + n); ans = new int64_t[n]; for (int i = 0; i < n; i++) ans[i] = 0; index = n - 1; ocount = n; while (total > 0){ ocount--; if (glasses[index].first > total){ ans[glasses[index].second] = total; total = 0; break; } ans[glasses[index].second] = glasses[index].first; total -= glasses[index].first; index--; } cout << ocount << endl; for (int i = 0; i < n; i++){ cout << ans[i]; if (i != n - 1) cout << " "; } }
#Verdict Execution timeMemoryGrader output
Fetching results...