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
39
40
#include<bits/stdc++.h>

using namespace std;

int a[510];
int pref[510];
int sum[40000100];

long long wynik = 0;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int n;
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    
    pref[0] = 0;
    for(int i=1;i<=n;i++) pref[i] = pref[i-1] + a[i-1];
    
    vector<int> nowy;
    
    for(int i=0;i<=n-1;i++) {
        for(int j=i+1;j<=n;j++)
            nowy.push_back(pref[j]-pref[i]);
    }
    
    int dodac = 20000500; 
    for(int i=nowy.size()-2;i>=0;i--) {
        wynik += sum[-nowy[i] + dodac];
        for(int j=i+1;j<nowy.size();j++)
            sum[nowy[i] + nowy[j] + dodac]++;
    }
    
    cout<<wynik<<endl;

    return 0;
}