#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
// int pid[] = {1,2,3,4};
int arr[] = {2,1,3,2,4}; // k-3 ans=3
int n = 5;
int k=3;
int pid[n+1];
int p[n];
for(int i=1; i<=n; i++){
pid[i]=arr[i-1];
p[i]=p[i-1]+arr[i];
}
unordered_map<int, int> mp;
int count=0;
mp[0] = 1;
for(int j=1; j<n; j++){
int t=(p[j]%k -j%k + k)%k;
cout<<"chosen for position- " << j << " target: "<< t << endl;
cout<<"mp[t]: " << mp[t]<< endl;
if(mp.find(t)!=mp.end()){
count += mp[t];
}
cout<< "count is now: " << count<<endl;
mp[t]++;
}
cout<<count;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJLy8gaW50IHBpZFtdID0gezEsMiwzLDR9OwoJaW50IGFycltdID0gezIsMSwzLDIsNH07IC8vIGstMyBhbnM9MwoJaW50IG4gPSA1OwoJaW50IGs9MzsKCQoJaW50IHBpZFtuKzFdOwoJaW50IHBbbl07CgkKCWZvcihpbnQgaT0xOyBpPD1uOyBpKyspewoJCXBpZFtpXT1hcnJbaS0xXTsKCQlwW2ldPXBbaS0xXSthcnJbaV07Cgl9CgkKCQoJCgl1bm9yZGVyZWRfbWFwPGludCwgaW50PiBtcDsKCQoJCglpbnQgY291bnQ9MDsKCW1wWzBdID0gMTsKCQoJCgkKCWZvcihpbnQgaj0xOyBqPG47IGorKyl7CgkJCgkJCgkJCgkJaW50IHQ9KHBbal0layAtaiVrICsgayklazsKCQkKCQkKCQljb3V0PDwiY2hvc2VuIGZvciBwb3NpdGlvbi0gIiA8PCBqIDw8ICIgdGFyZ2V0OiAiPDwgdCA8PCBlbmRsOwoJCQoJCWNvdXQ8PCJtcFt0XTogIiA8PCBtcFt0XTw8IGVuZGw7CgkJaWYobXAuZmluZCh0KSE9bXAuZW5kKCkpewoJCQljb3VudCArPSBtcFt0XTsJCgkJfQoJCQoJCQoJCWNvdXQ8PCAiY291bnQgaXMgbm93OiAiIDw8IGNvdW50PDxlbmRsOwoJCQoJCW1wW3RdKys7CgkJCgkJCgl9CgkKCWNvdXQ8PGNvdW50OwoJcmV0dXJuIDA7Cn0=