小明有n张扑克牌,每张扑克牌正面有一个数字ai,背面有个数字bi,你可以将扑克牌正面朝上或者反面朝上,使得朝上的数字之和为S,请问是否有一种方案能满足,如果没有输出No。如果有一种合法方案,请输出Yes,并且输出一个字符串表示方案,如果第i张扑克牌正面朝上输出H,反面朝上输出T。
第一行输入一个整数T,代表测试用例数目
对于每一个样例的第一行,输入两个整数n,S代表扑克牌的数目,以及数字之和
对于每一个样例接下来n行,输入两个整数ai,bi分别代表扑克牌正面朝上的数字以及反面朝上的数字。
对于每一个样例:
如果有方案满足,第一行输出”Yes“,第二行输出方案,如果第i张扑克牌正面朝上输出T,反面朝上输出H。
如果没有方案满足,输出一个”No“占一行。
2
3 3
1 2
2 1
1 2
3 10
1 2
3 4
1 1
Yes
THT
No
T =2,有两个测试用例
对于第一个测试用例而言,S=3,第一张扑克牌正面朝上,第二张扑克牌反面朝上, 第三章扑克牌正面朝上,所得的和为1+1+1=3合法。所以输出Yes,方案为THT
对于第二个测试用例而言,S=10,发现没有合法的方案,输出"No"即可
对于所有的T满足1≤T≤5
20%的数据满足1≤∑n≤20,1≤∑S≤100,
80%的数据满足1≤∑n≤100,1≤∑S≤10000
求大佬解答