Submission #1166459

#TimeUsernameProblemLanguageResultExecution timeMemory
1166459aminabouakazPyramids (IOI24_pyramids)C++20
100 / 100
44 ms5044 KiB
#include <iostream> #include <vector> class PyramidTransform { std::vector<long long> prefixSumA; std::vector<long long> prefixSumB; public: PyramidTransform(const std::vector<int>& a, const std::vector<int>& b) { prefixSumA.resize(a.size() + 1, 0LL); prefixSumB.resize(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; } }; PyramidTransform* pTransform; void init(std::vector<int> a, std::vector<int> b) { pTransform = new PyramidTransform(a, b); } bool can_transform(int l, int r, int x, int y) { return pTransform->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...