#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=30;
int a[N],vis[N];
int dx[]={0,0,1,-1,1,1,-1,-1};
int dy[]={1,-1,0,0,-1,1,1,-1};
int n,sum,ans;
void dfs(int index,int s,int cnt){
if(ans) return;
if(cnt==3){
ans=1;
return;
}
/*if(s>sum/3){
return;
}*/
if(s==sum/3){
dfs(1,0,cnt+1);
return;
}
for(int i=index;i<=n;i++){
if(vis[i]==0){
vis[i]=1;
dfs(i,s+a[i],cnt);
vis[i]=0;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
}
if(sum%3) cout<<"no"<<endl;
else{
dfs(1,0,0);
if(ans) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
}
等边三角形
最新推荐文章于 2022-07-10 14:09:51 发布