题解:枚举第三刀的点,然后i-2枚举第一刀的点(存在cnt中)如果当前枚举的点为第三刀,答案就加上cnt。
#include<bits/stdc++.h>
using namespace std;
int a[100010];
long long ans,cnt;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
a[i]+=a[i-1];
}
if(a[n]%3){
cout<<0<<endl;
return 0;
}
for(int i=3;i<=n;i++)
{
if(a[i-2]==a[n]/3) cnt++;
if(a[n]-a[i-1]==a[n]/3) ans+=cnt;
}
cout<<ans<<endl;
return 0;
}