水题.枚举四个顶点即可.
AC code:
#include <cstdio>
const int N=21;
int n,C,ans;
int dis[N][N];
int main(){
scanf("%d",&n);
for(int i=1;i<n;i++){
scanf("%d",&dis[i][i+1]);
C+=dis[i][i+1];
}
int tmp;
scanf("%d",&tmp);
C+=tmp;
for(int i=1;i<=n;i++)
for(int j=i+2;j<=n;j++)
dis[i][j]=dis[i][j-1]+dis[j-1][j];
for(int a=1;a<=n;a++){
for(int b=a+1;b<=n;b++){
for(int c=b+1;c<=n;c++){
for(int d=c+1;d<=n;d++){
if(dis[a][b]==dis[c][d]&&dis[b][c]==C-dis[a][b]-dis[b][c]-dis[c][d]&&dis[a][b]+dis[b][c]==(C>>1)) ans++;
}
}
}
}
printf("%d\n",ans);
return 0;
}