基本思路:
通过枚举第二刀的情况来进行计算
代码
include[HTML_REMOVED]
using namespace std;
typedef long long ll;
ll a[100050],s[100050];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i)
cin>>a[i];
for(int i=1;i<=n;i)
s[i]=a[i]+s[i-1];
if(s[n]%3)
{
cout<<”0”;
return 0;
}
ll cnt=0,res=0;
for(int j=2;j<=n-1;j)
{
if(s[j-1]==s[n]/3) cnt;
if(s[n]-s[j]==s[n]/3) res+=cnt;
}
cout<<res<<endl;
}
关键
j-1枚举的是第一刀,j是第二刀