Submission #431664

#TimeUsernameProblemLanguageResultExecution timeMemory
431664kostia244송금 (JOI19_remittance)C++17
0 / 100
1 ms332 KiB
#pragma GCC optimize("trapv")
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 16;
int n, a[N], b[N];
queue<int> q;
void add(int i, int x) {
    a[i] += x;
    if(a[i] > b[i])
        q.push(i);
}
int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n;
    for(int i = 0; i < n; i++) {
        cin >> a[i] >> b[i];
        if(a[i] > b[i])
            q.push(i);
    }
    while(!q.empty()) {
        int v = q.front();
        q.pop();
        if(a[v] == b[v]) continue;
        add((v+1)%n, (a[v]-b[v]+1)/2);
        a[v] -= 2*((a[v]-b[v]+1)/2);
    }
    int ok = 1;
    for(int i = 0; i < n; i++) ok &= a[i] == b[i];
    cout << (ok?"Yes":"No") << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...