Submission #922816

#TimeUsernameProblemLanguageResultExecution timeMemory
922816phoenix0423Remittance (JOI19_remittance)C++17
100 / 100
600 ms36428 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pll; #define fastio ios::sync_with_stdio(false), cin.tie(0) #define pb push_back #define eb emplace_back #define f first #define s second #define int long long const int INF = 1e12; signed main(void){ // fastio; int n; cin>>n; vector<int> a(n), b(n); for(int i = 0; i < n; i++){ int x, y; cin>>x>>y; a[i] = x - y; b[i] = y; } for(int i = 0; i < n; i++){ if(a[i] < 0){ int nd = - a[i] * 2; a[i] = 0; int id = (i - 1 + n) % n; while(id != i && a[id] < nd && nd < INF){ if(a[id] > 0) nd -= a[id], a[id] = 0; nd *= 2; id = (id - 1 + n) % n; } if(a[id] < nd){ cout<<"No\n"; return 0; } a[id] -= nd; } } int non = 0; for(int i = 0; ; i = (i + 1) % n){ if(non >= n) break; if(a[i] <= 0){ non++; continue; } if(a[i] % 2 == 0){ non = 0; a[(i + 1) % n] += a[i] / 2; a[i] = 0; continue; } if(b[i] > 0){ non = 0; a[(i + 1) % n] += (a[i] / 2) + 1; a[i] = -1; continue; } non++; } for(auto x : a){ if(x != 0){ cout<<"No\n"; return 0; } } cout<<"Yes\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...