#include <iostream>
#include<vector>
#include<unordered_map>
using namespace std;
int main() {
vector<int> nums = {1,3,2,4};
int k = 4;
int n = nums.size();
unordered_map<int,int> m;
vector<int> prefix(n + 1, 0);
int count = 0;
for(int i = 1; i < n; i++) {
prefix[i] = prefix[i-1] + nums[i];
}
m[0] = 1;
for(int j = 1; j <= n; j++) {
int RHS = ((prefix[j] - j) % k + k) % k;
count += m[RHS];
int LHS = ((prefix[j-1] - j) % k + k) % k;
m[LHS]++;
}
cout << count;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+IG51bXMgPSB7MSwzLDIsNH07CglpbnQgayA9IDQ7CglpbnQgbiA9IG51bXMuc2l6ZSgpOyAgICAgICAgICAgICAgICAgIAoKCXVub3JkZXJlZF9tYXA8aW50LGludD4gbTsKCXZlY3RvcjxpbnQ+IHByZWZpeChuICsgMSwgMCk7ICAgICAgICAgCglpbnQgY291bnQgPSAwOwoKCWZvcihpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHsgICAgICAgICAKICAgIAlwcmVmaXhbaV0gPSBwcmVmaXhbaS0xXSArIG51bXNbaV07Cgl9CgoJbVswXSA9IDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCglmb3IoaW50IGogPSAxOyBqIDw9IG47IGorKykgeyAgICAgICAgIAogICAgCWludCBSSFMgPSAoKHByZWZpeFtqXSAtIGopICUgayArIGspICUgazsgICAgICAKCiAgICAJY291bnQgKz0gbVtSSFNdOwoKICAgIAlpbnQgTEhTID0gKChwcmVmaXhbai0xXSAtIGopICUgayArIGspICUgazsgIAogICAgCW1bTEhTXSsrOwoJfQoKCWNvdXQgPDwgY291bnQ7CglyZXR1cm4gMDsKfQ==