#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; } |