Submission #1284453

#TimeUsernameProblemLanguageResultExecution timeMemory
1284453am_aadvikRemittance (JOI19_remittance)C++20
15 / 100
2 ms584 KiB
#include <iostream>
#include<vector>
#include<algorithm>
#define int long long
using namespace std;

void p(int x, int n, vector<int> a, vector<int> b, vector<int>& c, vector<int> oa) {
	a[n - 1] -= 2 * x, a[0] += x, c[n - 1] = 2 * x;
	for (int i = n - 2; i >= 0; --i)
		a[i] -= (2 * (b[i + 1] - a[i + 1])), c[i] = (2 * (b[i + 1] - a[i + 1]));
	if ((a[0] != b[0]) || (*min_element(c.begin(), c.end())) < 0) return;
	for (int i = 0; i < n; ++i) {
		if (oa[i] >= c[i]) { cout << "Yes"; exit(0); }
		oa[(i + 1) % n] += (min(oa[i], c[i]) / 2);
		oa[i] -= ((min(oa[i], c[i]) / 2) * 2);
	}
	if (oa[0] >= c[0]) { cout << "Yes"; exit(0); }
}
int32_t main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	int n; cin >> n;
	vector<int> a(n), b(n), c(n, 0);
	for (int i = 0; i < n; ++i)
		cin >> a[i] >> b[i];
	for (int x = 0; x < 100; ++x) p(x, n, a, b, c, a);
	cout << "No";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...