#ATarc179a. [ARC179A] Partition
[ARC179A] Partition
题目描述
给定你整数 和 。
定义长度为 的整数序列 的前缀和为长度为 的序列 满足:
如果一个长度为 的整数序列 满足以下条件,那么它被成为好的序列:
- 在 的前缀和中,任何小于 的值都出现在任何不小于 的值之前。
- 形式化的说,对于 的前缀和 ,对于任意整数对 其中 ,如果 且 那么 。
给你一个长度为 的整数序列 。判断是否能够通过重排 中的元素使 变成一个好的序列。如果可以,输出重排后的结果。
输入格式
第一行,输入两个整数 。
第二行,输入 个整数,表示数列 。
输出格式
如果能够通过重排 使得 变成一个好的序列,那么:
第一行,输出 Yes。
第二行,输出 个整数,表示重排过后的序列 。
如果有多个满足条件的重排后的序列,输出任意一个都会被视为是正确的。
如果无法通过重排 使得 变成一个好的序列,输出 No。
样例 1 解释
如果将 重排为 ,那么 的前缀和 为 。在 中任何小于 的值都会出现在任何不小于 的值之前。
样例 1
输入
4 1
-1 2 -3 4
输出
Yes
-3 -1 2 4
样例 2
输入
4 -1
1 -2 3 -4
输出
No
样例 3
输入
10 1000000000
-1000000000 -1000000000 -1000000000 -1000000000 -1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
输出
Yes
-1000000000 -1000000000 -1000000000 -1000000000 -1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
说明/提示
- ;
- ;
- ;
- 所有输入都是整数。