把题目需要的型材要求拆开看:
不同组的长度可以相同,也可以不同。因此,问题本质上就是:
小蓝有一批铝型材,每根型材的长度是一个正整数。他希望用这些型材拼装一个展示架。展示架由三组型材构成:第一组需要 2 根长度完全相同的型材,第二组也需要 2 根长度完全相同的型材,第三组同样需要 2 根长度完全相同的型材。不同组的长度可以相同,也可以不同。每根型材最多只能使用一次。
请你判断,能否从给定的型材中挑选出恰好 6 根,满足上述要求。
约束:型材的总数量 n 满足 6≤n≤105,每根型材的长度 ai 均为正整数且 ai≤105。
第一行包含一个整数 n,表示型材的数量。 第二行包含 n 个整数 a1,a2,…,an,表示每根型材的长度,数与数之间用空格分隔。
如果能够选出满足要求的三组型材,输出 YES;否则输出 NO。
输入
6
1 1 2 2 3 3
输出
YES
说明
可以选出全部6根木棍拼成房子:用两根长度为1的木棍作为长方形的左边和右边(宽),用两根长度为2的木棍作为长方形的下边和上边(长),上边同时作为三角形的底边;用两根长度为3的木棍作为等腰三角形的两腰。此时长方形宽为1、长为2,三角形腰长3、底边长2,满足2×3>2,可以搭出房子。
输入
6
1 1 2 2 3 4
输出
NO
说明
要拼出房子,需要木棍组成长方形的两组对边(共4根,每边长度相等)以及等腰三角形的两腰(共2根,长度相等),且两腰之和需大于底边。现只有长度为1和2的木棍各两根,剩余一根3和一根4无法形成第三组等长的两条边。因此无法选出合适的6根木棍拼出符合条件的房子。
输入
7
5 5 5 5 6 6 6
输出
YES
说明
可以从7根木棍中选出6根:用两根长度为5的木棍作为长方形的左边和右边,另两根长度5作为长方形的下边和上边(底边),用两根长度6的木棍作为等腰三角形的两腰。此时长方形为边长5的正方形,三角形腰长6、底边长5,满足2×6>5,可拼成房子。剩余一根木棍不使用不影响结果。
输入
8
1 2 3 4 5 6 7 8
输出
NO
说明
所有木棍长度各不相同,无法找出任何两根长度相等的木棍,因此无法组成房子所需的两组等长对边和一组等长腰。无法拼出房子。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册