Submission #609887

#TimeUsernameProblemLanguageResultExecution timeMemory
609887penguinhacker송금 (JOI19_remittance)C++17
0 / 100
1 ms340 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define ar array

const int mxN=1e6;
int n;
ll a[mxN], b[mxN];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> n;
	for (int i=0; i<n; ++i)
		cin >> a[i] >> b[i];
	for (int i=0, change=0; change<3*n; i=i+1<n?i+1:0) {
		if (a[i]>b[i]+1) {
			int x=(a[i]-b[i])/2;
			a[i+1<n?i+1:0]+=x;
			a[i]-=2*x;
			change=0;
		} else
			++change;
	}
	while(1) {
		vector<int> v;
		for (int i=0; i<n; ++i)
			if (a[i]>b[i]) {
				assert(a[i]==b[i]+1);
				v.push_back(i);
			}
		if (v.empty())
			break;
		for (int i : v) {
			a[i]-=2;
			++a[i+1<n?i+1:0];
		}
	}
	for (int i=0; i<n; ++i)
		if (a[i]!=b[i]) {
			cout << "No";
			return 0;
		}
	cout << "Yes";
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...