比赛 EYOI与SBOI开学欢乐赛6th 评测结果 AAAAAAAAAA
题目名称 夕景昨日 最终得分 100
用户昵称 op_组撒头屯 运行时间 0.032 s
代码语言 C++ 内存使用 3.30 MiB
提交时间 2022-09-19 21:21:54
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=100000+5; 
int a[N],n;
bool ok=0,ok1=0,p[5*N]={0};
long long tot=0;
void dfs(int pt,int s){
    if (s*2>tot||ok==1)return ;
    if (pt==n+1){
        if (s*2==tot){
            printf("Yes\n");ok=1;return ;
        }
        return ;
    }
    dfs(pt+1,s+a[pt]);
    dfs(pt+1,s);
    return ;
}
int main(){
	freopen ("switchs.in","r",stdin);
	freopen ("switchs.out","w",stdout);
	scanf("%d",&n);
	if (n<=15){
	    for (int i=1;i<=n;i++){
	        scanf("%d",&a[i]);tot+=a[i];
        }
        dfs(1,0);
        if (ok==0)printf("No\n");
        return 0;
    }
	for (int i=1;i<=n;i++){
	    scanf("%d",&a[i]);
	    tot+=a[i];
        if (a[i]==0)ok=1;
	    if (p[a[i]]==1)ok1=1;
	    p[a[i]]=1;
    }
    if (ok1==1)printf("Yes\n");
    else if (ok==0&&tot%2==1)printf("No\n");
    else printf("Yes\n");
    return 0;
}