数据这么小,维护一下前缀和,枚举所以可能,根据等弧对等边用前缀和判断一下即可。。
#include<cstdio>
#include<iostream>
#define N 25
using namespace std;
int n,ans=0,i,j,k,l,a[N],sum[N];
int main()
{
scanf("%d",&n);
sum[0]=0;
for (i=1;i<=n;i++)
{
scanf("%d",&a[i]);
sum[i]=sum[i-1]+a[i];
}
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++)
for (k=j+1;k<=n;k++)
for (l=k+1;l<=n;l++)
if (sum[j]-sum[i]==sum[l]-sum[k]&&2*(sum[l]-sum[k]+sum[k]-sum[j])==sum[n]) ans++;
printf("%d",ans);
}