#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+67;
long long A[MAXN],B[MAXN],C[MAXN];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>A[i]>>B[i];
for(int i=1;i<=n+36;i++)
{
C[i]+=A[i]-B[i];
if(C[i]<0) C[i+1]-=(-C[i]+1)/2,C[i]+=(-C[i]+1)/2*2;
C[i+1]+=C[i]/2,C[i]%=2;
}
if(C[n+37]<0) return cout<<"No",0;
long long sum=0;
for(int a=1;a<=30;a++) if(C[a])
{
sum+=(1LL<<(a-1));
for(int i=a;i<=n+36;i++)
{
if(i<a+n) C[i]--;
if(C[i]<0) C[i+1]-=(-C[i]+1)/2,C[i]+=(-C[i]+1)/2*2;
C[i+1]+=C[i]/2,C[i]%=2;
}
}
bool cc=true;
for(int i=1;i<=n+37;i++) cc&=(!C[i]);
if(!cc) return cout<<"No",0;
for(int t=1;t<=36;t++)
{
long long k=min(sum,A[n]/2);
A[n]-=k*2,A[1]+=k,sum-=k;
for(int i=1;i<=n;i++)
{
if(A[i]<B[i]) return cout<<"No",0;
A[i%n+1]+=(A[i]-B[i])/2,A[i]-=(A[i]-B[i]);
}
}
for(int i=1;i<=n;i++) if(A[i]!=B[i]) return cout<<"No",0;
cout<<"Yes";
}