This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long N;
cin >> N;
vector<long long> A(N), B(N);
for (long long i = 0; i < N; i++)
{
cin >> A[i] >> B[i];
}
for (long long i = 0; i < N - 1; i++)
{
if (A[i] > B[i])
{
long long amount = A[i] - B[i] + ((A[i] - B[i]) % 2);
if (amount > A[i])
amount -= 2;
A[i] -= amount;
A[i + 1] += amount / 2;
}
}
long long buff = N - 1;
int last = N - 2;
while (A[buff] > B[buff])
{
if (buff == last)
break;
if (A[buff] > B[buff])
{
long long amount = A[buff] - B[buff] + ((A[buff] - B[buff]) % 2);
if (amount > A[buff])
amount -= 2;
A[buff] -= amount;
A[(buff + 1) % N] += amount / 2;
if (amount)
last = buff;
}
buff = (buff + 1) % N;
}
long long done = 1;
for (long long i = 0; i < N; i++)
if (A[i] != B[i])
done = 0;
if (done)
cout << "Yes";
else
cout << "No";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |