AT_abc271_d [ABC271D] Flip and Adjust
题目描述
有 $N$ 张卡片,每张卡片的正反两面分别写有整数。第 $i$ 张卡片的正面写有 $a_i$,反面写有 $b_i$。
你可以自由决定每张卡片是正面朝上还是反面朝上。
请判断是否可以通过选择每张卡片的朝向,使得朝上的面上的整数之和恰好等于 $S$。如果可以,请给出一种可行的卡片放置方式。
输入格式
输入以如下格式从标准输入读入。
> $N$ $S$
> $a_1$ $b_1$
> $\vdots$
> $a_N$ $b_N$
输出格式
首先,如果存在一种卡片放置方式,使得朝上的面上的整数之和恰好等于 $S$,则输出 `Yes`,否则输出 `No`,并换行。
如果存在可行方案,则在下一行输出一个仅由 `H` 和 `T` 组成的长度为 $N$ 的字符串,表示卡片的放置方式。
第 $i$ 个字符为 `H` 表示第 $i$ 张卡片正面朝上,为 `T` 表示反面朝上。
如果存在多种方案,输出任意一种均可。
说明/提示
## 限制条件
- $1 \leq N \leq 100$
- $1 \leq S \leq 10000$
- $1 \leq a_i, b_i \leq 100\ (1 \leq i \leq N)$
- 输入均为整数
## 样例解释 1
例如,可以如下放置卡片,使得朝上的面上的整数之和恰好为 $S (= 11)$。
- 第 1 张卡片正面朝上,第 2 张卡片反面朝上,第 3 张卡片反面朝上。
- 第 1 张卡片反面朝上,第 2 张卡片正面朝上,第 3 张卡片正面朝上。
因此,`HTT` 或 `THH` 等输出均为正确答案。
## 样例解释 2
无法通过任何卡片放置方式,使得朝上的面上的整数之和恰好为 $S (= 25)$。
由 ChatGPT 4.1 翻译