[BZOJ1800][Ahoi2009]fly 飞行棋

前置知识:同弧所对的圆周角=圆心角的一半,矩形的四个内角是直角
由此找到所有的直径排列组合一下即可。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n,sum,a[25],ans;
int main() {
  scanf("%d",&n);
  for(int i=1;i<=n;i++) scanf("%d",&a[i]),sum+=a[i],a[i]+=a[i-1];
  if(sum&1) {puts("0");return 0;}
  for(int i=1;i<=n;i++)
    for(int j=i+1;j<=n;j++)
      if(a[j]-a[i]==(sum>>1)) ans++;
  printf("%d\n",ans*(ans-1)/2);
  return 0;
}
posted @ 2018-07-26 09:51  SWHsz  阅读(155)  评论(0编辑  收藏  举报