Submission #254721

#TimeUsernameProblemLanguageResultExecution timeMemory
254721dolphingarlicRemittance (JOI19_remittance)C++14
100 / 100
410 ms16248 KiB
#include <bits/stdc++.h>
using namespace std;

long long a[1000000], b[1000000];

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
		scanf("%lld %lld", a + i, b + i);
	if (!accumulate(b, b + n, 0))
		return puts(accumulate(a, a + n, 0) ? "No" : "Yes"), 0;
	for (int i = 0; i < 50; i++) {
		for (int i = 0; i < n; i++) {
			if (a[i] > b[i]) {
				a[(i + 1) % n] += (a[i] - b[i] + 1) / 2;
				a[i] -= (a[i] - b[i] + 1) / 2 * 2;
			}
		}
	}
	bool p = 1;
	for (int i = 0; i < n; i++) p &= (a[i] == b[i]);
	puts(p ? "Yes" : "No");
	return 0;
}

Compilation message (stderr)

remittance.cpp: In function 'int main()':
remittance.cpp:8:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
remittance.cpp:10:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld %lld", a + i, b + i);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...