#P1070. 前缀不等

前缀不等

题目描述

小象拿到了一个序列 aa,其中每个数都不相同。它想把这个序列重排之后拿给它的朋友炫耀。

它的朋友习惯观察一个序列的每一个前缀。但是它的朋友非常不喜欢一个数 xx,如果一个序列有一个前缀的和为 xx,它的朋友看了就会不高兴。

小象当然不希望它的朋友生气,所以它希望重排之后的序列没有前缀满足和为 xx。同时小象为了省事,它希望找到一个字典序最小的重排。请告诉它方案,或者告诉它这样的方案不存在。

输入格式

第一行两个整数 n,xn,x

第二行共 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n,表示小象初始得到的序列 aa,满足互不相同。

输出格式

第一行输出一个字符串 YesNo,表示是否存在这样的重排方案。

第一行的输出若为 Yes,则第二行 nn 个整数,表示字典序最小的重排方案。

3 2
3 2 1
Yes
1 2 3

数据范围

  • 对于 60%60 \% 的数据,n10n \leq 10

  • 对于 100%100 \% 的数据,n1000n \leq 1000

  • 对于所有数据,1n1031 \leq n \leq 10^31ai1051 \leq a_i \leq 10^51x1081 \leq x \leq 10^8,且 aia_i 互不相同。