#include <bits/stdc++.h>
using namespace std;
#define ms(s,n) memset(s,n,sizeof(s))
#define all(a) a.begin(),a.end()
#define present(t, x) (t.find(x) != t.end())
#define sz(a) int((a).size())
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)
#define FORd(i, a, b) for (int i = (a) - 1; i >= (b); --i)
#define pb push_back
#define pf push_front
#define fi first
#define se second
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pi;
typedef vector<int> vi;
typedef vector<pi> vii;
const int MOD = (int) 1e9+7;
const int INF = (int) 1e9+1;
inline ll gcd(ll a,ll b){ll r;while(b){r=a%b;a=b;b=r;}return a;}
inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int n; cin >> n;
ll sum = 0;
ll ans = 0;
int cnt[n+1] ={0};
cnt[0] = 1;
for(int i = 0; i < n; i++){
int x; cin >> x;
sum += x;
int remain = (sum % n + n) % n;
if(cnt[remain]) ans += cnt[remain];
cnt[remain]++;
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKI2RlZmluZSBtcyhzLG4pIG1lbXNldChzLG4sc2l6ZW9mKHMpKQojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksYS5lbmQoKQojZGVmaW5lIHByZXNlbnQodCwgeCkgKHQuZmluZCh4KSAhPSB0LmVuZCgpKQojZGVmaW5lIHN6KGEpIGludCgoYSkuc2l6ZSgpKQojZGVmaW5lIEZPUihpLCBhLCBiKSBmb3IgKGludCBpID0gKGEpOyBpIDwgKGIpOyArK2kpCiNkZWZpbmUgRk9SZChpLCBhLCBiKSBmb3IgKGludCBpID0gKGEpIC0gMTsgaSA+PSAoYik7IC0taSkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBwZiBwdXNoX2Zyb250CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKIAp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGk7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPHBpPiB2aWk7CiAKY29uc3QgaW50IE1PRCA9IChpbnQpIDFlOSs3Owpjb25zdCBpbnQgSU5GID0gKGludCkgMWU5KzE7CmlubGluZSBsbCBnY2QobGwgYSxsbCBiKXtsbCByO3doaWxlKGIpe3I9YSViO2E9YjtiPXI7fXJldHVybiBhO30KaW5saW5lIGxsIGxjbShsbCBhLGxsIGIpe3JldHVybiBhL2djZChhLGIpKmI7fQogCiAKaW50IG1haW4oKXsKCSNpZm5kZWYgT05MSU5FX0pVREdFCglmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKCWZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CgkjZW5kaWYKCWludCBuOyBjaW4gPj4gbjsKCWxsIHN1bSA9IDA7CglsbCBhbnMgPSAwOwoJaW50IGNudFtuKzFdID17MH07CgljbnRbMF0gPSAxOwoJZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CgkJaW50IHg7IGNpbiA+PiB4OwoJCXN1bSArPSB4OwoJCWludCByZW1haW4gPSAoc3VtICUgbiArIG4pICUgbjsKCQlpZihjbnRbcmVtYWluXSkgYW5zICs9IGNudFtyZW1haW5dOwoJCWNudFtyZW1haW5dKys7Cgl9Cgljb3V0IDw8IGFucyA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=
MTAwCjIgMSAtMyAyIC03IDcgLTIgNiA5IC00IDEwIC02IDMgOSAtOCA3IC0yIC05IDQgLTMgLTIgNiA2CjMgNyAyIC0xIDEwIDYgLTQgNCA5IC0xIC01IC02IC05IDEgMiAyIC0xMCAtMiAzIDMgNCAzIC0KNiAtNSAtMSA5IDYgLTQgNiAyIC0xIDYgMSA2IDEgMyA3IC02IDEwIDEgMSA2IC05IDAgNSAtMQo4IDYgMCA1IDUgLTMgMSAxIC01IC05IC04IC05IC03IDcgLTYgMTAgNyA4IDEgLTIgMiA4IDkgLQoxIDUgLTcgMyAtMyAtOSAtMyA0
100
2 1 -3 2 -7 7 -2 6 9 -4 10 -6 3 9 -8 7 -2 -9 4 -3 -2 6 6
3 7 2 -1 10 6 -4 4 9 -1 -5 -6 -9 1 2 2 -10 -2 3 3 4 3 -
6 -5 -1 9 6 -4 6 2 -1 6 1 6 1 3 7 -6 10 1 1 6 -9 0 5 -1
8 6 0 5 5 -3 1 1 -5 -9 -8 -9 -7 7 -6 10 7 8 1 -2 2 8 9 -
1 5 -7 3 -3 -9 -3 4