判断一下是不是所有方向都在一条直线的同一边就行了。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<algorithm>
#define eps 1e-6
using namespace std;
double a[100010];
int main()
{
int cas;
int n,i;
bool flag;
scanf("%d",&cas);
while(cas--)
{
a[0]=0;
flag=true;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
double b;
scanf("%lf",&b);
a[i]=360.0+a[i-1]+b;
while(a[i]>=360.0)
a[i]-=360.0;
}
sort(a+1,a+n+1);
for(i=1;i<=n;i++)
if(a[i]-a[i-1]>=180)
{
flag=false;
break;
}
if(a[n]<=180)
flag=false;
if(n==1&&a[1]==180)
flag=true;
if(flag)
printf("Yes\n");
else printf("No\n");
}
return 0;
}