#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int s[N];
int main()
{
int n;
cin>>n;
long long int cnt=0;
long long int a=0,b=0,tot=0,sum=0;
for(int i=1;i<=n;i++)
{
cin>>s[i];
sum+=s[i];
}
if(sum%3)puts("0");
else
{
long long int ave=sum/3;
for(int i=1;i<n;i++)
{
cout<<"第"<<i<<"轮a为"<<a<<endl;
tot+=s[i];
//先计算等于1ave的划分
if(tot==2*ave)b+=a;
if(tot==ave)a++;
}
cout<<b<<endl;
}
}
微妙地避开了 0 0这种情况。
先判断是否是2ave,是就把之前发现的ave的个数加到总数上。(第一天加油啊)