제출 #1281336

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

const int maxn = 1e6 + 100;

set <pair <int, int>> s;
int a[maxn], b[maxn], d[maxn], n;

void push(int i)
{
	int cur = d[i];
	if (cur - 1)
	{
		cur -= cur % 2;
	}
	s.erase({d[i], i});
	d[i] -= cur;
	s.insert({d[i], i});
	int j = i + 1;
	if (j == n + 1)
	{
		j = 1;
	}
	s.erase({d[j], j});
	d[j] += cur / 2;
	s.insert({d[j], j});
	return ;
}

int main()
{
	cin >> n;
	for (int i = 1;i <= n;i++)
	{
		cin >> a[i] >> b[i];
		d[i] = a[i] - b[i];
		s.insert({d[i], i});
	}

	while ((*(--s.end())).first > 0)
	{
		push((*(--s.end())).second);
	}
	for (int i = 1;i <= n;i++)
	{
		if (d[i] < 0)
		{
			cout << "No";
			return 0;
		}
	}
	cout << "Yes";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...