Submission #1136839

#TimeUsernameProblemLanguageResultExecution timeMemory
1136839onbertRemittance (JOI19_remittance)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e6 + 5;
int n;
int a[maxn], b[maxn];
signed main() {
    cin >> n;
    for (int i=0;i<n;i++) cin >> a[i] >> b[i];
    for (int i=n-1;i>=0;i--) {
        int need = max(b[i] - a[i], (int)0);
        a[(i - 1 + n) % n] -= need * 2;
        a[i] += need;
    }
    for (int ii=0;ii<=1;ii++) {
        for (int i=0;i<n;i++) {
            int trans = max((a[i] - b[i] + 1) / 2, (int)0);
            a[(i + 1) % n] += trans;
            a[i] -= trans * 2;
        }
    }
    for (int i=0;i<n;i++) if (a[i] != b[i]) {
        cout << "No\n";
        return 0;
    }
    cout << "Yes\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...