#include <vector>
using namespace std;
vector<int> pyramidsA, pyramidsB;
vector<int> sumA, sumB;
void init(vector<int> A, vector<int> B) {
    pyramidsA = A;
    pyramidsB = B;
    sumA = A;
    sumB = B;
    for (int i = 1; i < A.size(); ++i) {
        sumA[i] += sumA[i - 1];
        sumB[i] += sumB[i - 1];
    }
}
bool can_transform(int L, int R, int X, int Y) {
    if (sumA[R] - (L > 0 ? sumA[L - 1] : 0) !=
        sumB[Y] - (X > 0 ? sumB[X - 1] : 0)) {
        return false;
    }
    int diffA = 0, diffB = 0;
    for (int i = 0; i <= R - L; ++i) {
        diffA += pyramidsA[L + i] - (L + i > L ? pyramidsA[L + i - 1] : 0);
        diffB += pyramidsB[X + i] - (X + i > X ? pyramidsB[X + i - 1] : 0);
        if (diffA != diffB) {
            return false;
        }
    }
    return true;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |