计蒜客习题:等边三角形
题目
样例
代码
#include<iostream>
using namespace std;
int n,p[25],sum1,sum2,sum3,k=0,ave,f=0;
void dfs(int k,int sum1,int sum2,int sum3)
{
if(sum1>ave||sum2>ave||sum3>ave) return;
if(k==n||f==1)
{
if(sum1==sum2&&sum2==sum3) f=1;
return;
}
dfs(k+1,sum1+p[k],sum2,sum3);
dfs(k+1,sum1,sum2+p[k],sum3);
dfs(k+1,sum1,sum2,sum3+p[k]);
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>p[i];
ave+=p[i];
}
if(ave%3) {cout<<"no";return 0;}
else ave/=3;
dfs(0,0,0,0);
if(f) cout<<"yes";
else cout<<"no";
return 0;
}