제출 #773892

#제출 시각아이디문제언어결과실행 시간메모리
773892gagik_2007송금 (JOI19_remittance)C++17
100 / 100
191 ms25360 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pii;
typedef pair<ll, ll> pll;

#define ff first
#define ss second

ll ttt;
const ll INF=1e18;
const ll MOD=1e9+7;
const ll N=3e5+7;
ll n,m,k;
vector<ll>a,b;
const int SZ=20;

void change(ll i, ll tal){
    a[i]-=tal*2;
    a[(i+1)%n]+=tal;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    // freopen("output.txt","w",stdout);
    cin>>n;
    for(ll i=0;i<n;i++){
        ll x,y;
        cin>>x>>y;
        a.push_back(x);
        b.push_back(y);
    }
    for(int _=0;_<SZ;_++){
        for(ll i=0;i<n;i++){
            if(a[i]!=1&&a[i]>b[i]){
                ll tal=0;
                if(b[i]==0){
                    tal=a[i]/2;
                }
                else{
                    tal=(a[i]-b[i]+1)/2;
                }
                // cout<<i%n<<": "<<a[i]<<", "<<b[i]<<": "<<tal<<endl;
                change(i,tal);
            }
        }
    }
    for(ll i=0;i<n;i++){
        // cout<<a[i]<<" "<<b[i]<<endl;
        if(a[i]!=b[i]){
            cout<<"No"<<endl;
            return 0;
        }
    }
    cout<<"Yes"<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...