Submission #1281335

#TimeUsernameProblemLanguageResultExecution timeMemory
1281335arashmemarRemittance (JOI19_remittance)C++20
0 / 100
1 ms716 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 1e6 + 100; set <pair <int, int>> s; int a[maxn], b[maxn], d[maxn], n; void push(int i) { int cur = d[i]; cur -= cur % 2; a[i] -= cur; s.erase({d[i], i}); d[i] -= cur; s.insert({d[i], i}); int j = i + 1; if (j == n + 1) { j = 1; } s.erase({d[j], j}); d[j] += cur / 2; s.insert({d[j], j}); return ; } int main() { cin >> n; for (int i = 1;i <= n;i++) { cin >> a[i] >> b[i]; d[i] = a[i] - b[i]; s.insert({d[i], i}); } while ((*(--s.end())).first > 1) { push((*(--s.end())).second); } if ((*(--s.end())).first == 1) { cout << "No"; return 0; } for (int i = 1;i <= n;i++) { if (d[i] < 0) { cout << "No"; return 0; } } cout << "Yes"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...