#include <bits/stdc++.h>
using namespace std;
const long long int maxn = 1e6 + 100;
set <pair <long long int, long long int>> s;
long long int a[maxn], b[maxn], d[maxn], n;
void push(long long int i)
{
long long int cur = d[i];
if (cur != 1)
{
cur -= cur % 2;
}
else
{
cur++;
}
s.erase({d[i], i});
d[i] -= cur;
s.insert({d[i], i});
long long 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 (long long 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);
}
if ((*s.begin()).first < 0)
{
cout << "No";
}
else
{
cout << "Yes";
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |