
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int countSubarrays(vector<int> &arr, int k) {
    unordered_map<int,int> mp;
    int c=0;int cur=0;
    for(int i:arr){
        cur+=i;
        if(cur==k) c+=1;
        if(mp.find(cur-k)!=mp.end()) c+=mp[cur-k];
        mp[cur]++;
    }
    return c;
    
}

int main() {
    vector<int> arr = {10, 2, -2, -20, 10};
    int k = -10;
    cout << countSubarrays(arr, k);
    return 0;
}