Informatica Online Judge

  중력 변화 [1144 / 0478]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 280   Total Tried : 649


The Champion of this Problem (C++) : gs17033 - ms / 154byte
My Best Submission (C++) : N/A

[Codeforces 변경]

Background

경곽이는 중력의 방향을 바꾸는 실험실에서 실험을 하고 있다.

크기가 4인 상자에 왼쪽 그림과 같이 블럭을 쌓아두었다. (상자의 크기는 칸의 수를 의미하며, 이 때의 중력 방향은 아래쪽이다.)

경곽이는 1번 버튼을 눌러서 중력의 방향을 오른쪽 그림과 같이 바꾸었더니 상자들이 오른쪽 그림과 같이 바뀌었다. (1번 버튼은 중력을 왼쪽으로 바꾸는 버튼이다.)

이 때 진한 상자들은 중력에 방향에 의해서 이동한 상자를 나타낸다.



2번 버튼은 중력의 방향을 오른쪽으로 바꾸는 버튼이다. 그림 상으로는 오른쪽으로 바꾸는 버튼을 누른 상태는 주어지지 않았다.

각 상자는 왼쪽으로부터 쌓여있는 블럭의 수로 표현한다.

이 방법에 의하면 왼쪽의 상자는 { 2, 1, 2, 3 } 이고,

오른쪽의 그림의 상자는 { 3, 2, 2, 1 } 이 된다.

중력이 아래방향일 때 상자의 모양과, 누른 버튼의 번호 1 또는 2가 주어질 때, 중력 작용 후의 상자의 배치를 출력하는 프로그램을 작성하시오.

Input

첫 번째 줄에 상자의 크기 n과 누른 버튼의 번호가 주어진다.

두 번째 줄에는 각 칸에 있는 블럭의 수가 공백으로 구분되어 입력된다.

[입력값의 정의역]
1 <= n <= 1,000
각 칸의 최대 블럭의 수 <= 1,000
버튼의 번호 = { 1, 2 } ( 1 = 왼쪽, 2 = 오른쪽 )

Output

각 버튼을 누른 후의 변화된 블럭의 수를 출력한다.

IO Example

입력
4 1
2 1 2 3

출력
3 2 2 1

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]