제출 #337744

#제출 시각아이디문제언어결과실행 시간메모리
337744blue송금 (JOI19_remittance)C++11
100 / 100
870 ms20972 KiB
#include <iostream>
#include <set>
using namespace std;

int a[1000000], b[1000000];

int main()
{
    int N;
    cin >> N;

    for(int i = 0; i < N; i++) cin >> a[i] >> b[i];

    bool flag;
    do
    {
        flag = 0;
        for (int i = 0; i < N; i++)
        {
            int remittance = (a[i] - b[i]) / 2;
            if (remittance > 0)
            {
                a[i] -= 2 * remittance;
                a[(i + 1) % N] += remittance;
                flag = 1;
            }
        }
    } while (flag);

    bool ok1 = true;
    bool ok2 = true;
    bool b0 = true;
    for (int i = 0; i < N; i++) {
        ok1 &= a[i] == b[i];
        ok2 &= a[i] == b[i] + 1;
        b0 &= b[i] == 0;
    }
    ok2 &= !b0;

    if (ok1 || ok2)
    {
       cout << "Yes\n";
    }
    else
    {
       cout << "No\n";
    }

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...