#include #include using namespace std; int main() { // ucitavamo trazeni zbir int trazeniZbir; cin >> trazeniZbir; // zbir prefiksa int zbirPrefiksa = 0; // broj segmenata sa trazenim zbirom int broj = 0; // broj pojavljivanja svakog vidjenog zbira prefiksa map zbiroviPrefiksa; // zbir pocetnog praznog prefiksa je 0 i on se za sada pojavio // jednom zbiroviPrefiksa[0] = 1; // ucitavamo elemente niza niz int n; cin >> n; for (int i = 0; i < n; i++) { int x; cin >> x; // prosirujemo prefiks tekucim elementom zbirPrefiksa += x; // trazimo broj pojavljivanja vrednosti // zbirPrefiksa - trazeniZbir i azuriramo broj // pronadjenih segmenata auto it = zbiroviPrefiksa.find(zbirPrefiksa - trazeniZbir); if (it != zbiroviPrefiksa.end()) broj += it->second; // povecavamo broj pojavljivanja trenutnog zbira zbiroviPrefiksa[zbirPrefiksa]++; } cout << broj << endl; }