#abc271d. [abc271_d]Flip and Adjust

[abc271_d]Flip and Adjust

题目描述

NN 张卡片,每张卡片的正反两面分别写有一个整数。第 ii 张卡片(1iN1 \leq i \leq N)的正面写着整数 aia_i,背面写着整数 bib_i

你可以选择将每张卡片的正面或背面朝上摆放。

判断是否可以将卡片摆放在一起,使得可见整数的和恰好等于 SS。如果可能,请找到一种摆放方式。

约束条件

  • 1N1001 \leq N \leq 100
  • 1S100001 \leq S \leq 10000
  • 1ai,bi100(1iN)1 \leq a_i, b_i \leq 100 \, (1 \leq i \leq N)
  • 输入中的所有值都为整数。

输入

输入以以下格式从标准输入中给出:

NN SS a1a_1 b1b_1 \vdots aNa_N bNb_N

输出

首先,如果可以使得可见整数的和恰好等于 SS,则输出 Yes,否则输出 No,然后换行。

此外,如果可能存在一种摆放方式,输出一个长度为 NN 的字符串,由 HT 组成,表示相应卡片的摆放方式。
ii 张卡片(1iN1 \leq i \leq N)的字母应为 H,表示将该卡片正面朝上摆放,或为 T,表示将该卡片背面朝上摆放。
如果有多种可能的摆放方式,可以输出其中任意一种。

样例输入 1

3 11
1 4
2 3
5 7

样例输出 1

Yes
THH

例如,以下两种摆放方式使得可见整数的和恰好等于 S(=11)S (= 11)

  • 将第 11 张卡片正面朝上,第 22 张卡片背面朝上,第 33 张卡片背面朝上。
  • 将第 11 张卡片背面朝上,第 22 张卡片正面朝上,第 33 张卡片正面朝上。

因此,诸如 HTTTHH 的输出方式也是被接受的。

样例输入 2

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

样例输出 2

No

无法将卡片摆放在一起,使得可见整数的和恰好等于 S(=25)S (= 25)