1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>

using namespace std;

int main()
{
    int nnn; cin>> nnn; int const nn = nnn; int ucb[nn];   //przygotowanie ulubionego ciagu
    for(int i=0; i<nnn; i++)
    {
        cin >> ucb[i];
    }
    int const n = (nn*(nn+1))/2; int buc[n]; int pnb = 0, sum; // tworzenie bardzo ulubionego ciagu; pnb - pozycja na bucu, sum - suma przedzialu spojnego
    for(int i=0; i<nn; i++)
    {
        sum=0;
        for(int j=i; j<nn; j++)
        {
            sum = sum+ucb[j];
            buc[pnb]=sum;
            pnb++;
        }
    }         //skonczenie tworzenia buca
    int it=0; sum = 0; //sum - suma el do 0, it - ile trojel
    for(int k=0; k<n-2; k++)
    {
        for(int i=k+1; i<n-1;i++)
        {
            sum = buc[k] + buc[i];
            for(int j=i+1; j<n; j++)
            {
                if(sum+buc[j]==0)
                    it++;
            }
        }
    }
    cout << it;
    return 0;
}