#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MXN = 1e6+6;
int n;
ll A[MXN], B[MXN];
int32_t main() {
    cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
    cin >> n;
    for(int i=0; i<n; i++) cin >> A[i] >> B[i];
    int i=0, it=0;
    while(it<n) {
        if(A[i]<=B[i] || (A[i]==1 && B[i]==0)) {
            it++;
            (++i) %= n;
            continue;
        }
        it=0;
        int j=i;
        while(A[j]>B[j] && !(A[j]==1 && B[j]==0)) {
            ll send = (A[j]-B[j]+(B[j]!=0))>>1;
            A[j] -= send<<1;
            A[(++j)%=n] += send;
        }
    }
    for(int i=0; i<n; i++)
        if(A[i]!=B[i]) {
            cout << "No\n";
            return 0;
        }
    cout << "Yes\n";
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |