#include <iostream>
#include<vector>
#include<unordered_map>
using namespace std;
int main() {
vector<int>arr={2,5,2,5,2,5,1,1};
int d=5,m=2,n=arr.size(),currentPrefix=0;
unordered_map<int,int>freqMap;
freqMap[0]=1;
int count=0;
for(int i=0;i<n;i++){
if(arr[i]==d){
currentPrefix++;
}
if(freqMap.find(currentPrefix-m)!=freqMap.end()){
count+=freqMap[currentPrefix-m];
}
freqMap[currentPrefix]++;
}
cout<<count;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+YXJyPXsyLDUsMiw1LDIsNSwxLDF9OwoJaW50IGQ9NSxtPTIsbj1hcnIuc2l6ZSgpLGN1cnJlbnRQcmVmaXg9MDsKCXVub3JkZXJlZF9tYXA8aW50LGludD5mcmVxTWFwOwoJZnJlcU1hcFswXT0xOwoJaW50IGNvdW50PTA7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlpZihhcnJbaV09PWQpewoJCQljdXJyZW50UHJlZml4Kys7CgkJfQoJCWlmKGZyZXFNYXAuZmluZChjdXJyZW50UHJlZml4LW0pIT1mcmVxTWFwLmVuZCgpKXsKCQkJY291bnQrPWZyZXFNYXBbY3VycmVudFByZWZpeC1tXTsKCQl9CgkJZnJlcU1hcFtjdXJyZW50UHJlZml4XSsrOwoJfQoJY291dDw8Y291bnQ7CglyZXR1cm4gMDsKfQ==