出现的错误
1在c++中long long 型的只能在主函数之外;
2在本题中不是单独的分三段,而是可以有多少种三段而且这三段的和相等。
2/3
1/3
#include <iostream>
using namespace std;
long long a[500005];
int main()
{
int n,i,m;
long long sum=0;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>m;
a[i]=a[i-1]+m;
sum+=m;
}
long long pj=sum/3;
long long pj1=sum/3*2;
long long p1=0,p2=0;
if(sum%3!=0)
{
cout<<0<<endl;
}
else
{
for(i=1;i<n;i++)
{
if(a[i]==pj1) p2+=p1;// 2/3的次数*1/3的次数=总次数
if(a[i]==pj) p1++; //1/3的的次数
}
cout<<p2<<endl;
}
return 0;
}