Submission #1165971

#TimeUsernameProblemLanguageResultExecution timeMemory
1165971aminabouakazPyramids (IOI24_pyramids)C++20
0 / 100
1096 ms5032 KiB
#include "pyramids.h" #include <vector> using namespace std; vector<int> prefixA, prefixB; vector<int> remainderA, remainderB; void init(vector<int> A, vector<int> B) { int N = A.size(); prefixA.resize(N + 1, 0); prefixB.resize(N + 1, 0); remainderA.resize(N, 0); remainderB.resize(N, 0); for (int i = 0; i < N; ++i) { prefixA[i + 1] = prefixA[i] + A[i]; prefixB[i + 1] = prefixB[i] + B[i]; } for (int i = 1; i < N; ++i) { remainderA[i] = (A[i] - A[i - 1] + 10) % 10; remainderB[i] = (B[i] - B[i - 1] + 10) % 10; } } bool can_transform(int L, int R, int X, int Y) { if (prefixA[R + 1] - prefixA[L] != prefixB[Y + 1] - prefixB[X]) { return false; } for (int i = L + 1, j = X + 1; i <= R; ++i, ++j) { if (remainderA[i] != remainderB[j]) { return false; } } return true; }
#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...