Problem4929--数据分类 II:荷兰国旗问题

4929: 数据分类 II:荷兰国旗问题

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

给定一个数组arr, 和一个数num, 请把小于num的数放在数组的左边, 等于num的数放在数组的中间, 大于num的数放在数组的右边。
要求额外空间负责度为O(1),时间复杂度为O(n)。

Input

共两行。
第一行一个 n 和 num。其中 n 表示第二行数据的个数, num 表示需要处理的数据。
第二行一个数组 arr。其包含 n 个整数,每个整数之间用空格隔开。

Output

共一行。
 n 个按照要求处理后的数组 arr。每个整数之间用空格隔开。

Sample 1 Input

10 5
1 5 4 8 3 5 9 5 6 2

Sample 1 Output

1 4 2 3 5 5 5 6 9 8

HINT

【数据范围】
1 ≤ N ≤ 106
1 ≤ num, arr[i] ≤ 100

Source/Category

基础算法 4.7.排序