Submission #1281339

#TimeUsernameProblemLanguageResultExecution timeMemory
1281339arashmemarRemittance (JOI19_remittance)C++20
0 / 100
1 ms576 KiB
#include <bits/stdc++.h> using namespace std; const long long int maxn = 1e6 + 100; set <pair <long long int, long long int>> s; long long int a[maxn], b[maxn], d[maxn], n; void push(long long int i) { long long int cur = d[i]; if (cur != 1) { cur -= cur % 2; } else { cur++; } s.erase({d[i], i}); d[i] -= cur; s.insert({d[i], i}); long long 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 (long long 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 > 0) { push((*(--s.end())).second); } if ((*s.begin()).first < 0) { cout << "No"; } else { cout << "Yes"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...