#include "pyramids.h"
#include <vector>
std::vector<int> sumA, sumB, remA, remB;
void init(std::vector<int> A, std::vector<int> B) {
  int N = A.size();
  sumA.resize(N + 1, 0);
  sumB.resize(N + 1, 0);
  remA.resize(N + 1, 0);
  remB.resize(N + 1, 0);
  for (int i = 0; i < N; ++i) {
    sumA[i + 1] = sumA[i] + A[i];
    sumB[i + 1] = sumB[i] + B[i];
    remA[i + 1] = remA[i] + (A[i] % 2);
    remB[i + 1] = remB[i] + (B[i] % 2);
  }
}
bool can_transform(int L, int R, int X, int Y) {
  int rangeSumA = sumA[R + 1] - sumA[L];
  int rangeSumB = sumB[Y + 1] - sumB[X];
  int rangeRemA = remA[R + 1] - remA[L];
  int rangeRemB = remB[Y + 1] - remB[X];
  return rangeSumA == rangeSumB && rangeRemA == rangeRemB;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |