#include <bits/stdc++.h>
#define FOR(i,p,k) for(int i=(p);i<=(k);++i)
#define REP(i,n) FOR(i,0,(n)-1)
#define ssize(x) (int((x).size()))
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define gc getchar_unlocked
using namespace std;
typedef long long ll;
void wczytaj(int &a){
scanf("%d", &a);
}
constexpr int rozmiar = 40000001;
constexpr int off = 20000000;
int kub_prawdziwe[rozmiar];
int* kub = kub_prawdziwe+off;
void solve(){
int n;
wczytaj(n);
vector<int> wej(n+1, 0);
FOR(i, 1, n) wczytaj(wej[i]), wej[i] += wej[i-1];
vector<int> prz;
FOR(poc, 1, n) FOR(kon, poc, n) prz.emplace_back(wej[kon]-wej[poc-1]);
ll wyn = 0ll;
FOR(kon, 1, n){
for(int i : prz) ++kub[i-wej[kon-1]];
for(int i : prz) wyn += kub[-i-wej[kon]];
}
FOR(i, -off, off) kub[i] = 0;
for(int i : prz) ++kub[i];
for(int i : prz) wyn -= 3ll*kub[-2*i];
for(int i : prz) if(!i) wyn += 2ll;
wyn /= 6ll;
printf("%lld", wyn);
}
int main(){
solve();
return 0;
}
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 41 42 43 44 45 46 47 48 | #include <bits/stdc++.h> #define FOR(i,p,k) for(int i=(p);i<=(k);++i) #define REP(i,n) FOR(i,0,(n)-1) #define ssize(x) (int((x).size())) #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define gc getchar_unlocked using namespace std; typedef long long ll; void wczytaj(int &a){ scanf("%d", &a); } constexpr int rozmiar = 40000001; constexpr int off = 20000000; int kub_prawdziwe[rozmiar]; int* kub = kub_prawdziwe+off; void solve(){ int n; wczytaj(n); vector<int> wej(n+1, 0); FOR(i, 1, n) wczytaj(wej[i]), wej[i] += wej[i-1]; vector<int> prz; FOR(poc, 1, n) FOR(kon, poc, n) prz.emplace_back(wej[kon]-wej[poc-1]); ll wyn = 0ll; FOR(kon, 1, n){ for(int i : prz) ++kub[i-wej[kon-1]]; for(int i : prz) wyn += kub[-i-wej[kon]]; } FOR(i, -off, off) kub[i] = 0; for(int i : prz) ++kub[i]; for(int i : prz) wyn -= 3ll*kub[-2*i]; for(int i : prz) if(!i) wyn += 2ll; wyn /= 6ll; printf("%lld", wyn); } int main(){ solve(); return 0; } |
English