递送菜肴
题面描述
在一个餐馆中突然来了 个顾客,并且他们都点了一道菜。具体地,第 个顾客点了编号 的菜,在这之后,第 个顾客点了编号为 的菜,依此类推。
然而,由于服务器故障,后厨收到的点菜顺序被打乱了。后厨收到的点菜顺序是 ,并且他们按照这个顺序做出了所有的菜。
问题到了服务员的头上。他必须按顺序给 个顾客送餐,否则一些顾客就会说“我比他先点餐,怎么不先给我上菜。”因此,服务员决定使用他的强大的运输工具:“服务栈车”。
这个服务栈车有两个功能,一个是将最先做好的菜放到餐车里面,另一个是取出最后放入餐车的菜,并且交给某个顾客。除此之外,服务员不能用别的方式操作菜。
于是问题来了,服务员能否按照点菜的顺序送餐呢?如果可以,还要输出方案。
输入格式
第一行一个正整数 ,表示顾客的个数。
第二行 个整数 ,表示后厨的做菜顺序。
第三行 个整数 ,表示顾客点的菜。
输出格式
如果无法按照点餐顺序送餐,输出 NO
,否则输出 YES
。
如果输出了 YES
,你还需要在第二行输出长度为 的字符串,表示服务员的操作顺序。其中用 S
和 C
分别表示放入餐车和拿出菜。
如果有多种方案,输出任意一种。
样例
3
2 1 2
1 2 2
YES
SSCSCC
说明/提示
后厨的出餐顺序是 ,三个顾客点的菜分别是 。以下是一种送餐方式:
S
,将编号为 的菜加入餐车,餐车内的东西是 。S
,将编号为 的菜加入餐车,餐车内的东西是 。C
,将最后加入的,编号为 的菜拿出并交给第一位顾客,餐车内的东西是 。S
,将编号为 的菜加入餐车,餐车内的东西是 。C
,将最后加入的,编号为 的菜拿出并交给第二位顾客,餐车内的东西是 。C
,将最后加入的,编号为 的菜拿出并交给第三位顾客,餐车内的东西是 。
这是一种合法的方案,当然,方案不唯一。
对于 的数据,,。
保证 互为排列。
国庆提高/省选组比赛
- Status
- Live... (Attended)
- Rule
- IOI
- Problem
- 40
- Start at
- 2025-10-15 19:32
- End at
- 2025-11-16 0:00
- Duration
- 1104 hour(s)
- Host
- Partic.
- 85