제출 #1281350

#제출 시각아이디문제언어결과실행 시간메모리
1281350arashmemar송금 (JOI19_remittance)C++20
100 / 100
295 ms12312 KiB
#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e6 + 100;

int a[maxn], b[maxn], d[maxn], n;

void push(int i)
{
	int cur = d[i];
	if (cur <= 0)
	{
		return ;
	}
	if (cur != 1)
	{
		cur -= cur % 2;
	}
	else
	{
		if (b[i] == 0)
		{
			return ;
		}
		cur++;
	}
	d[i] -= cur;
	int j = i + 1;
	if (j == n + 1)
	{
		j = 1;
	}
	d[j] += cur / 2;
	return ;
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	for (int i = 1;i <= n;i++)
	{
		cin >> a[i] >> b[i];
		d[i] = a[i] - b[i];
	}
	int cnt = 30 * n;
	for (int i = 1;cnt;i = (i % n) + 1)
	{
		push(i);
		cnt--;
	}

	for (int i = 1;i <= n;i++)
	{
		if (d[i])
		{
			cout << "No";
			return 0;
		}
	}
	cout << "Yes";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...