Submission #958783

#TimeUsernameProblemLanguageResultExecution timeMemory
958783raphaelpRemittance (JOI19_remittance)C++14
100 / 100
603 ms36660 KiB
#include <bits/stdc++.h> using namespace std; int main() { long long N; cin >> N; vector<long long> A(N), B(N); for (long long i = 0; i < N; i++) { cin >> A[i] >> B[i]; } for (long long i = 0; i < N - 1; i++) { if (A[i] > B[i]) { long long amount = A[i] - B[i] + ((A[i] - B[i]) % 2); if (amount > A[i]) amount -= 2; A[i] -= amount; A[i + 1] += amount / 2; } } long long buff = N - 1; int last = N - 2; while (A[buff] > B[buff]) { if (buff == last) break; if (A[buff] > B[buff]) { long long amount = A[buff] - B[buff] + ((A[buff] - B[buff]) % 2); if (amount > A[buff]) amount -= 2; A[buff] -= amount; A[(buff + 1) % N] += amount / 2; if (amount) last = buff; } buff = (buff + 1) % N; } long long done = 1; for (long long i = 0; i < N; i++) if (A[i] != B[i]) done = 0; if (done) cout << "Yes"; else cout << "No"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...