Submission #1166457

#TimeUsernameProblemLanguageResultExecution timeMemory
1166457aminabouakazPyramids (IOI24_pyramids)C++20
100 / 100
38 ms5036 KiB
#include <iostream> #include <vector> class PyramidTransform { public: PyramidTransform(const std::vector<int>& A, const std::vector<int>& B) : prefixSumA(A.size() + 1, 0LL), prefixSumB(B.size() + 1, 0LL) { for (size_t i = 0; i < A.size(); ++i) { prefixSumA[i + 1] = prefixSumA[i] + A[i]; prefixSumB[i + 1] = prefixSumB[i] + B[i]; } } bool canTransform(int L, int R, int X, int Y) { long long sumA = prefixSumA[R + 1] - prefixSumA[L]; long long sumB = prefixSumB[Y + 1] - prefixSumB[X]; return sumA == sumB; } private: std::vector<long long> prefixSumA; std::vector<long long> prefixSumB; }; PyramidTransform* pyramidTransform; void init(std::vector<int> A, std::vector<int> B) { pyramidTransform = new PyramidTransform(A, B); } bool can_transform(int L, int R, int X, int Y) { return pyramidTransform->canTransform(L, R, X, Y); }
#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...