#include<bits/stdc++.h>
#include<algorithm>
#include<random>
#include<chrono>
#include<cstdlib>
#include<ctime>
#include<numeric>
#include<vector>
#include<stack>
#include<map>
#include<set>
#include<queue>
#include<iomanip>
#define int long long
#define ll long long
#define L LLONG_MAX
#define fi first
#define se second
#define pii pair<int,int>
#define sz(a) ((int)a.size())
#define FOR(i,j,k) for(int i=j;i<=k;i++)
#define REP(i,k,j) for(int i=k;i>=j;i--)
#define FORD(i,a) for(auto i:a)
#define rngdcl mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count())
#define random(l,r) ((l)+(rng()%(r-l+1)))
using namespace std;
const int nmax=1e6+1;
int n;
int a[nmax];
bool flag1=false,flag2=true;
void input()
{
    cin >> n;
    FOR(i,0,n-1)
    {
        int x,y; cin >> x >> y;
        if(y>0) flag2=false;
        if(x>0) flag1=true;
        a[i]=x-y;
    }
}
void solve()
{
    if(flag1 && flag2)
    {
        cout << "No";
        return;
    }
    while(true)
    {
        bool flag=false;
        FOR(i,0,n-1)
        {
            if(a[i]>0)
            {
                flag=true;
                a[(i+1)%n]+=(a[i]+1)/2;
                a[i]-=(a[i]+1)/2*2;
            }
        }
        if(!flag) break;
    }
    FOR(i,0,n-1) if(a[i]!=0)
    {
        cout << "No";
        return;
    }
    cout << "Yes";
}
signed main()
{
    //freopen(".inp", "r", stdin);
    //freopen(".out", "w", stdout);
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    input();
    solve();
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |