#include<bits/stdc++.h>
using namespace std;
#define FAST std::ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(0);
typedef long long ll;
const int N = 1e8 + 1;
void solve() {
int n; cin >> n;
vector<ll> a(n);
ll sum = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
sum += a[i];
}
int s = a[0];
vector<bool> isHere(N, false);
isHere[s] = true;
for (int i = 1; i < n; i++) {
s += a[i];
isHere[s] = true;
}
// a.push_back(a[0]);
// a.push_back(a[1]);
if (sum % 3 != 0) return void(cout << 0);
int target = sum / 3, temp = 0, ans = 0;
sum = 0;
int r = 0;
for (int i = 0; i < n - 1; i++)
{
while (r < n)
{
if (temp + a[r] < target) { temp += a[r]; sum += a[r]; r++; }
else if (temp + a[r] == target) { temp += a[r]; sum += a[r]; if (isHere[sum + 8 - 1]) ans++; r++;}
else break;
}
// cout << temp << '\n';
temp -= a[i];
}
cout << ans / 2;
}
int main () {
FAST
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int n; cin >> n;
int arr[n];
int sum = 0;
for(int i = 0; i < n; i++){
cin >> arr[i];
sum += arr[i];
}
if(sum % 3 != 0) {
cout << 0;
return 0;
}
int target = sum / 3;
int idx = 0;
for(int i = 0; i < n; i++) {
idx += arr[i];
if(idx >= target/**/) {
idx = i;
break;
}
}
int i = 0, j = 0, ans = 0;
sum = 0;
while(j < n) {
sum += arr[j];
if(sum == target) {
ans++;
sum -= arr[i];
i++;j++;
} else if(sum < target) {
j++;
} else {
sum -= arr[i];
i++; j++;
}
}
j = 0;
sum -= arr[i];
i++;
while(j < idx) {
sum += arr[j];
if(sum == target) {
ans++;
sum -= arr[i];
i++;j++;
} else if(sum < target) {
j++;
} else {
sum -= arr[i];
i++; j++;
}
}
cout << ans / 3 << endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBGQVNUIHN0ZDo6aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZShOVUxMKTsgY291dC50aWUoMCk7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgTiA9IDFlOCArIDE7CnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbjsgY2luID4+IG47CiAgICB2ZWN0b3I8bGw+IGEobik7CiAgICBsbCBzdW0gPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgc3VtICs9IGFbaV07CiAgICB9CiAgICBpbnQgcyA9IGFbMF07CiAgICB2ZWN0b3I8Ym9vbD4gaXNIZXJlKE4sIGZhbHNlKTsKICAgIGlzSGVyZVtzXSA9IHRydWU7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgewogICAgICAgIHMgKz0gYVtpXTsKICAgICAgICBpc0hlcmVbc10gPSB0cnVlOwogICAgfQogICAgLy8gYS5wdXNoX2JhY2soYVswXSk7CiAgICAvLyBhLnB1c2hfYmFjayhhWzFdKTsKICAgIGlmIChzdW0gJSAzICE9IDApIHJldHVybiB2b2lkKGNvdXQgPDwgMCk7CiAgICBpbnQgdGFyZ2V0ID0gc3VtIC8gMywgdGVtcCA9IDAsIGFucyA9IDA7CiAgICBzdW0gPSAwOwogICAgaW50IHIgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKQogICAgewogICAgICAgIHdoaWxlIChyIDwgbikKICAgICAgICB7CiAgICAgICAgICAgIGlmICh0ZW1wICsgYVtyXSA8IHRhcmdldCkgeyB0ZW1wICs9IGFbcl07IHN1bSArPSBhW3JdOyByKys7IH0KICAgICAgICAgICAgZWxzZSBpZiAodGVtcCArIGFbcl0gPT0gdGFyZ2V0KSB7IHRlbXAgKz0gYVtyXTsgc3VtICs9IGFbcl07IGlmIChpc0hlcmVbc3VtICsgOCAtIDFdKSBhbnMrKzsgcisrO30KICAgICAgICAgICAgZWxzZSBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gY291dCA8PCB0ZW1wIDw8ICdcbic7CiAgICAgICAgdGVtcCAtPSBhW2ldOwogICAgfQogICAgY291dCA8PCBhbnMgLyAyOwoKfQoKaW50IG1haW4gKCkgewogICAgRkFTVAogICAgLy9mcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgIC8vZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIGludCBuOyBjaW4gPj4gbjsKICAgIGludCBhcnJbbl07CiAgICBpbnQgc3VtID0gMDsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewogICAgICAgIGNpbiA+PiBhcnJbaV07CiAgICAgICAgc3VtICs9IGFycltpXTsKICAgIH0KICAgIGlmKHN1bSAlIDMgIT0gMCkgewogICAgICAgIGNvdXQgPDwgMDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGludCB0YXJnZXQgPSBzdW0gLyAzOwogICAgaW50IGlkeCA9IDA7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaWR4ICs9IGFycltpXTsKICAgICAgICBpZihpZHggPj0gdGFyZ2V0LyoqLykgewogICAgICAgICAgICBpZHggPSBpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBpbnQgaSA9IDAsIGogPSAwLCBhbnMgPSAwOwogICAgc3VtID0gMDsKICAgIHdoaWxlKGogPCBuKSB7CiAgICAgICAgc3VtICs9IGFycltqXTsKICAgICAgICBpZihzdW0gPT0gdGFyZ2V0KSB7CiAgICAgICAgICAgIGFucysrOwogICAgICAgICAgICBzdW0gLT0gYXJyW2ldOwogICAgICAgICAgICBpKys7aisrOwogICAgICAgIH0gZWxzZSBpZihzdW0gPCB0YXJnZXQpIHsKICAgICAgICAgICAgaisrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1bSAtPSBhcnJbaV07CiAgICAgICAgICAgIGkrKzsgaisrOwogICAgICAgIH0KICAgIH0KICAgIGogPSAwOwogICAgc3VtIC09IGFycltpXTsKICAgIGkrKzsKICAgIHdoaWxlKGogPCBpZHgpIHsKICAgICAgICBzdW0gKz0gYXJyW2pdOwogICAgICAgIGlmKHN1bSA9PSB0YXJnZXQpIHsKICAgICAgICAgICAgYW5zKys7CiAgICAgICAgICAgIHN1bSAtPSBhcnJbaV07CiAgICAgICAgICAgIGkrKztqKys7CiAgICAgICAgfSBlbHNlIGlmKHN1bSA8IHRhcmdldCkgewogICAgICAgICAgICBqKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3VtIC09IGFycltpXTsKICAgICAgICAgICAgaSsrOyBqKys7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBhbnMgLyAzIDw8IGVuZGw7Cn0=