제출 #337651

#제출 시각아이디문제언어결과실행 시간메모리
337651blueRemittance (JOI19_remittance)C++11
100 / 100
871 ms14720 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...