#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> nums = {
{1,4,6,3,8,2},
{3,5,1,9,7,4},
{5,2,7,5,9,1}
};
int l = 2, r = 4; // Sum from index 2 to 4 (inclusive)
// Prefix sum for each row
vector<vector<int>> prefix(nums.size());
for (int i = 0; i < nums.size(); i++) {
prefix[i].resize(nums[i].size());
prefix[i][0] = nums[i][0];
for (int j = 1; j < nums[i].size(); j++) {
prefix[i][j] = prefix[i][j - 1] + nums[i][j];
}
}
// Answer queries
for (int i = 0; i < nums.size(); i++) {
int sum;
if (l == 0)
sum = prefix[i][r];
else
sum = prefix[i][r] - prefix[i][l - 1];
cout << "Sum: " << sum << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IG51bXMgPSB7CiAgICAgICAgezEsNCw2LDMsOCwyfSwKICAgICAgICB7Myw1LDEsOSw3LDR9LAogICAgICAgIHs1LDIsNyw1LDksMX0KICAgIH07CgogICAgaW50IGwgPSAyLCByID0gNDsgICAvLyBTdW0gZnJvbSBpbmRleCAyIHRvIDQgKGluY2x1c2l2ZSkKCiAgICAvLyBQcmVmaXggc3VtIGZvciBlYWNoIHJvdwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBwcmVmaXgobnVtcy5zaXplKCkpOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtcy5zaXplKCk7IGkrKykgewogICAgICAgIHByZWZpeFtpXS5yZXNpemUobnVtc1tpXS5zaXplKCkpOwoKICAgICAgICBwcmVmaXhbaV1bMF0gPSBudW1zW2ldWzBdOwoKICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IG51bXNbaV0uc2l6ZSgpOyBqKyspIHsKICAgICAgICAgICAgcHJlZml4W2ldW2pdID0gcHJlZml4W2ldW2ogLSAxXSArIG51bXNbaV1bal07CiAgICAgICAgfQogICAgfQoKICAgIC8vIEFuc3dlciBxdWVyaWVzCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bXMuc2l6ZSgpOyBpKyspIHsKICAgICAgICBpbnQgc3VtOwogICAgICAgIGlmIChsID09IDApCiAgICAgICAgICAgIHN1bSA9IHByZWZpeFtpXVtyXTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHN1bSA9IHByZWZpeFtpXVtyXSAtIHByZWZpeFtpXVtsIC0gMV07CgogICAgICAgIGNvdXQgPDwgIlN1bTogIiA8PCBzdW0gPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==