Submission #441436

#TimeUsernameProblemLanguageResultExecution timeMemory
441436peijarRemittance (JOI19_remittance)C++17
100 / 100
286 ms24396 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

signed main(void) {
  ios_base::sync_with_stdio(false);
  cin.tie(0);

  int N;
  cin >> N;
  vector<int> A(N), B(N);
  for (int i = 0; i < N; ++i) {
    cin >> A[i] >> B[i];
  }

  bool allZero = true;
  for (int i = 0; i < N; ++i)
    allZero &= !B[i];

  if (allZero) {
    while (true) {
      bool change = false;
      for (int i = 0; i < N; ++i) {
        if (A[i] > 1) {
          int d = A[i] / 2;
          A[i] -= 2 * d;
          A[(i + 1) % N] -= d;
          change = true;
        }
      }
      if (!change)
        break;
    }
  } else {
    while (true) {
      bool change = false;
      for (int i = 0; i < N; ++i)
        if (A[i] > B[i]) {
          int delta = (A[i] - B[i] + 1) / 2;
          A[i] -= 2 * delta;
          A[(i + 1) % N] += delta;
          change = true;
        }
      if (!change)
        break;
    }
  }
  for (int i = 0; i < N; ++i)
    if (A[i] != B[i]) {
      cout << "No\n";
      return 0;
    }
  cout << "Yes\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...