Submission #1010861

#TimeUsernameProblemLanguageResultExecution timeMemory
1010861vivkostovRemittance (JOI19_remittance)C++14
0 / 100
1 ms344 KiB
#include<bits/stdc++.h> #define endl '\n' using namespace std; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } long long int n,a[200005],b[200005]; void fin(int i,long long int st) { long long int ost=st; //cout<<endl<<i<<endl; for(int j=i-1;j>=0;j--) { //cout<<j<<" "; if(j==0)j=n; st*=2; if(st>=2000000000) { cout<<"No"<<endl; exit(0); } if(a[j]-b[j]>0) { int g=min(a[j]-b[j],st); st-=g; a[j]-=g; a[i]+=ost; if(st==0)return; } } } void read() { cin>>n; int brr=0,brr1=0; for(int i=1;i<=n;i++) { cin>>a[i]>>b[i]; if(b[i]==0)brr++; brr1+=a[i]; } if(brr==0) { if(brr1)cout<<"No"<<endl; else cout<<"Yes"<<endl; return; } int pren=0; for(int i=1;i<=n;i++) { a[i]+=pren; if(a[i]>=b[i]) { if((a[i]-b[i])%2==0)pren=(a[i]-b[i])/2; else { fin(i,1); pren=(a[i]-b[i])/2; } } else fin(i,b[i]-a[i]); //cout<<i<<" "<<a[5]<<" "<<pren<<" "<<a[3]<<endl; } cout<<"Yes"<<endl; } int main() { speed(); read(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...