Submission #773851

#TimeUsernameProblemLanguageResultExecution timeMemory
773851gagik_2007Remittance (JOI19_remittance)C++17
15 / 100
1 ms324 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;

void change(int i, int tal){
    i%=n;
    for(int j=0;j<5*n;j+=n){
        a[i+j]-=tal*2;
        a[(i+1)%n+j]+=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 i=0;i<4*n;i++){
        a.push_back(a[i]);
        b.push_back(b[i]);
    }
    for(int i=0;i<5*n;i++){
        if(a[i]!=b[i]){
            int tal=0;
            if(a[i]!=1&&a[i]>b[i]){
                if(a[i]%2==b[i]%2){
                    tal=(a[i]-b[i])/2;
                }
                else{
                    tal=(a[i]-b[i]+1)/2;
                    if(b[i]==0){
                        tal--;
                    }
                }
            }
            // cout<<i%n<<": "<<a[i]<<", "<<b[i]<<": "<<tal<<endl;
            change(i,tal);
        }
    }
    for(int 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...