3 条题解
-
0
using namespace std; const int N=1e4+10; int a[N],sum=0,n; bool vis[N]; bool dfs(int cnt,int ans){ if(cnt>sum){ return false; } if(cnt==sum){ ans++; if(ans==3){ return true; } cnt=0; } for(int i=1;i<=n;i++){ if(vis[i]){ continue; } vis[i]=true; if(dfs(cnt+a[i],ans)){ return true; } vis[i]=false; } return false; } int main (){ freopen("triangle.in", "r", stdin); freopen("triangle.out", "w", stdout); cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; sum+=a[i]; } if(sum%3!=0){ cout<<"no"; return 0; } sum/=3; if(dfs(0,0)){ cout<<"yes"; }else{ cout<<"no"; } return 0; }
信息
- ID
- 548
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 508
- 已通过
- 32
- 上传者