#abc271d. Flip and Adjust(翻转卡片)

Flip and Adjust(翻转卡片)

题目描述

有 NN 张卡片,每张卡片的正反两面各写着一个整数。第 ii 张卡片正面的数为 aia_i,反面的数为 bib_i。

你可以独立决定每张卡片哪一面朝上。请判断能否让所有朝上的数之和恰好等于 SS。如果可以,还需要给出一种摆放方案。

输入格式

第一行包含两个整数 N,SN,S。

接下来 NN 行,第 ii 行包含两个整数 ai,bia_i,b_i。

输出格式

如果不存在方案,输出一行 No。

否则,第一行输出 Yes,第二行输出一个长度为 NN、仅由 H 和 T 组成的字符串。第 ii 个字符为 H 表示第 ii 张卡片正面朝上,为 T 表示反面朝上。

有多种合法方案时,输出任意一种即可。

样例 1

输入

3 11
1 4
2 3
5 7

输出

Yes
THH

说明

HTT 与 THH 都是合法方案,朝上的数之和都等于 1111。

样例 2

输入

5 25
2 8
9 3
4 11
5 1
12 6

输出

No

说明

不存在使朝上的数之和恰好等于 2525 的方案。

数据范围

1≤N≤1001\le N\le100,1≤S≤100001\le S\le10000,1≤ai,bi≤1001\le a_i,b_i\le100。所有输入均为整数。

来源

AtCoder ABC271D