Submission #1165944

#TimeUsernameProblemLanguageResultExecution timeMemory
1165944aminabouakazPyramids (IOI24_pyramids)C++20
20 / 100
70 ms5028 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...