#4404. 翻转和调整(Flip and Adjust)
翻转和调整(Flip and Adjust)
题目描述
有张卡片,每张卡片正反两面都写有一个整数。第张卡片正面写有整数,反面写有整数。你可以选择每张卡片正面朝上或反面朝上。
判断是否可以通过翻转卡片,使所有可见整数之和恰好等于。如果可能,找出一种实现方法。
输入格式
输入从标准输入中给出,格式如下:
输出格式
首先,如果可以使可见整数之和恰好等于,则输出"Yes
",否则输出"No
",后跟换行符。
另外,如果存在这样的放置方法,请输出一个长度为的字符串,由"H
"和"T
"组成,表示实现该和的卡片放置方法。第个字符应为"H
",如果第张卡片应正面朝上放置,为"T
"如果应反面朝上。如果有多种可能的放置方法来实现该和,输出其中任何一种即可。
样例
3 11
1 4
2 3
5 7
Yes
THH
5 25
2 8
9 3
4 11
5 1
12 6
No
样例解释
【样例1说明】
例如,以下放置方法可以使可见整数之和恰好等于:
- 将第1张卡片正面朝上放置,第2张反面朝上,第3张反面朝上。
- 将第1张卡片反面朝上放置,第2张正面朝上,第3张正面朝上。
因此,输出"HTT
"和"THH
"都是可以接受的。
【样例2说明】
无法通过翻转卡片使可见整数之和恰好等于。
数据范围
- 输入中的所有值都是整数。
来源
- AtCoder ABC271D