#ABC271D. [ABC271D] 翻转和调整(Flip and Adjust)

    ID: 2794 problem_type.undefined ms MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>ABC入门算法闯关组合递推与动态规划

[ABC271D] 翻转和调整(Flip and Adjust)

Cannot parse: cfg.checker.includes is not a function

题目描述

NN 张卡片,每张卡片正反两面都写有一个整数。第 ii 张卡片正面写有整数 aia_i,反面写有整数 bib_i。你可以选择每张卡片正面朝上或反面朝上。

判断是否可以通过翻转卡片,使所有可见整数之和恰好等于 SS。如果可能,找出一种实现方法。

输入格式

输入从标准输入中给出,格式如下:。

N N S S

a1 a_1 b1 b_1

\vdots

aN a_N bN b_N

输出格式

首先,如果可以使可见整数之和恰好等于 SS,则输出 "Yes",否则输出 "No",后跟换行符。

另外,如果存在这样的放置方法,请输出一个长度为 NN 的字符串,由"H"和"T"组成,表示实现该和的卡片放置方法。

ii 个字符应为 "H",如果第 ii 张卡片应正面朝上放置,为 "T" 如果应反面朝上。

如果有多种可能的放置方法来实现该和,输出其中任何一种即可。

输入输出样例 #1

输入 #1

3 11
1 4
2 3
5 7

输出 #1

Yes
THH

输入输出样例 #2

输入 #2

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

输出 #2

No

说明/提示

样例 1 解释

例如,以下放置方法可以使可见整数之和恰好等于 S(=11)S(=11)

  • 将第1张卡片正面朝上放置,第2张反面朝上,第3张反面朝上。
  • 将第1张卡片反面朝上放置,第2张正面朝上,第3张正面朝上。

因此,输出 "HTT""THH" 都是可以接受的。

数据范围

  • 1  N  100 1\ \leq\ N\ \leq\ 100
  • 1  S  10000 1\ \leq\ S\ \leq\ 10000
  • $ 1\ \leq\ a_i,\ b_i\ \leq\ 100\ \,\ (1\ \leq\ i\ \leq\ N) $
  • 输入中的所有值都是整数。