Submission #163916

#TimeUsernameProblemLanguageResultExecution timeMemory
163916maruiiRemittance (JOI19_remittance)C++14
55 / 100
1049 ms43656 KiB
#include <bits/stdc++.h> using namespace std; using pii = pair<int, int>; #define ff first #define ss second int N, A[1000006], X[1000006]; set<pii> s; int main() { ios_base::sync_with_stdio(0), cin.tie(0); cin >> N; for (int i = 1; i <= N; ++i) { int x; cin >> x >> X[i]; A[i] = x - X[i]; s.insert(pii(A[i], i)); } while (1) { auto t = (--s.end())->ss; if (A[t] < 2) break; while (A[t] > 1) { s.erase(pii(A[t], t)); s.erase(pii(A[t % N + 1], t % N + 1)); int a = A[t] / 2; A[t] -= a * 2; A[t % N + 1] += a; s.insert(pii(A[t], t)); s.insert(pii(A[t % N + 1], t % N + 1)); t = t % N + 1; } } int flag = 1, flag2 = 0, flag3 = 1; for (int i = 1; i <= N; ++i) { if (A[i]) flag3 = 0; if (A[i] != 1) flag = 0; if (X[i]) flag2 = 1; } if ((flag && flag2) || flag3) puts("Yes"); else puts("No"); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...