제출 #1165953

#제출 시각아이디문제언어결과실행 시간메모리
1165953aminabouakazPyramids (IOI24_pyramids)C++20
20 / 100
37 ms5032 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...