題目鏈接:http://swjtuoj.cn/problem/2383/
f[i+1][(j+tt[i])% 3600] |= f[i][j];
#include <iostream>
#include <cstdio>
#include <memory.h>
#include <algorithm>
using namespace std;
bool f[3700][3700];
int tt[100010];
int main()
{
int t;
cin >> t;
while (t > 0)
{
t--;
int n;
scanf("%d", &n);
for (int i=0; i<n; i++) scanf("%d", &tt[i]);
memset(f,0,sizeof(f));
if (n > 3600)
{
cout << "YES" << endl;
continue;
}
for (int i=0; i<n; i++) f[i+1][tt[i]%3600] = 1;
for (int i=0; i<n; i++)
{
for (int j=0; j<3600; j++)
{
f[i+1][j] |= f[i][j];
f[i+1][(j+tt[i])% 3600] |= f[i][j];
}
}
if (f[n][0])
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}