제출 #538213

#제출 시각아이디문제언어결과실행 시간메모리
538213rrrr10000Remittance (JOI19_remittance)C++14
100 / 100
665 ms36428 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
typedef tuple<ll,ll,ll> PP;
typedef vector<ll> vi;
typedef vector<vi> vvi;
typedef vector<P> vp;
typedef vector<bool> vb;
#define rep(i,n) for(ll i=0;i<(ll)(n);i++)
#define REP(i,k,n) for(ll i=(ll)(k);i<(ll)(n);i++)
#define all(a) a.begin(),a.end()
#define fi first
#define se second
#define pb emplace_back
#define lb(v,k) (lower_bound(all(v),k)-v.begin())
template<class T> void out(T a){cout<<a<<'\n';}
template<class T> void outv(T v){rep(i,v.size()){if(i)cout<<' ';cout<<v[i];}cout<<'\n';}
const ll mod=1000000007;
ll modpow(ll a,ll b){
    ll res=1;
    while(b){
        if(b&1)res=res*a%mod;
        b>>=1;
        a=a*a%mod;
    }
    return res;
}
int main(){
    cin.tie(0);ios::sync_with_stdio(false);
    ll n;cin>>n;
    vp v(n);
    rep(i,n)cin>>v[i].fi>>v[i].se;
    rep(i,n*70){
        ll cur=i%n;
        if(v[cur].fi-v[cur].se>1){
            ll s=(v[cur].fi-v[cur].se)/2;
            v[cur].fi-=s*2;
            v[(cur+1)%n].fi+=s;
        }
    }
    rep(i,n)assert(v[i].fi-v[i].se<=1);
    bool ok=true;
    rep(i,n)if(v[i].fi!=v[i].se)ok=false;
    if(!ok){
        ok=true;
        rep(i,n)if(v[i].fi<=v[i].se)ok=false;
        if(ok){
            ok=false;
            rep(i,n)if(v[i].fi>1)ok=true;
        }
    }
    if(ok)out("Yes");
    else out("No");
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...