等边三角形

蒜头君手上有一些小木棍,它们长短不一,蒜头君想用这些木棍拼出一个等边三角形,并且每根木棍都要用到。例如, 蒜头君手上有长度为1, 2, 3, 3的4根木棍,他可以让长度为1,2的木棍组成一条边,另外2跟分别组成2条边,拼成一个边长为3的等边三角形。蒜头君希望你提前告诉他能不能拼出来,免得白费功夫。

输入格式

首先输入一个整数n(3 < n < 10),表示木棍数量,接下来输入n根木棍的长度pi(1

输出格式

如果蒜头君能拼出等边三角形,输出"yes",否则输出"no"。


#include
using namespace std;
int n;
int a[15];
bool vis[15];
bool f;
int sum = 0;
void dfs(int cnt, int s)
{if (cnt == 3){f = true;return;}if (s == sum / 3){dfs(cnt + 1, 0);return;}for (int i = 0; i < n; i++){if (!vis[i]){vis[i] = true;dfs(cnt + 1, s + a[i]);vis[i] = false;}}
}
int main()
{cin >> n;for (int i = 0; i < n; i++){cin >> a[i];sum += a[i];}dfs(0, 0);if (sum % 3 != 0){cout << "no";} else{dfs(0, 0);if (f){cout << "yes";}}return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部