Skip to content

거리두기

UnratedSpecial judge
한국어

Language

Contribute a translation
Time limit
1000 ms
Memory limit
1024 MB
Submissions
0
Correct
0
Solved by
0
AC rate

Statement

$N$명의 학생이 수직선 위에 서려고 한다. 수직선에서는 수가 클수록 더 오른쪽에 있는 위치를 나타낸다.

학생들은 $1$번부터 $N$번까지 번호 순서대로 왼쪽부터 오른쪽으로 서며, 학생들이 서는 위치는 모두 정수이다.

$i$ $(1 \le i \le N)$번 학생이 서는 위치를 $B_i$라고 하자. 학생들이 서는 위치는 다음 조건을 만족해야 한다.

  • 정수 $i$ $(1 \le i \le N)$에 대해, $i$번 학생은 위치 $A_i$보다 오른쪽에 설 수 없다. 즉, $B_i \le A_i$여야 한다.
  • 번호가 연속한 두 학생은 $K$ 이상의 거리를 두어야 한다. 즉, 정수 $i$ $(1 \le i \le N - 1)$에 대해 $B_{i+1} - B_i \ge K$여야 한다.

$K = 0$인 경우에는 여러 학생이 같은 위치에 서도 된다.

학생들은 $1$번 학생의 위치 $B_1$을 가능한 한 크게 만들고 싶다.

조건을 만족하면서 학생들이 수직선 위에 서는 방법 $\left[ B_1, B_2, \cdots, B_N \right]$ 중 $B_1$의 값이 가장 큰 방법을 구하라. 그러한 방법이 여러 개라면 그중 아무거나 구하라.

조건을 만족하면서 학생들이 수직선 위에 서는 방법이 적어도 하나는 존재함을 증명할 수 있다.

Constraints

  • 주어지는 모든 수는 정수이다.
  • $1 \le N \le 100$
  • $0 \le K \le 10$
  • 정수 $i$ $(1 \le i \le N)$에 대하여 $1 \le A_i \le 100$

Subtasks

  1. (25점) 정수 $i$ $(1 \le i \le N - 1)$에 대해 $A_{i + 1} - A_i \ge K$이다.
  2. (35점) $K = 0$
  3. (30점) 조건을 만족하도록 학생들이 서는 방법 중 $0 \le B_1 \le 100$인 것이 존재한다.
  4. (10점) 추가 제약 조건 없음.

Input

첫 줄에 두 정수 $N$과 $K$가 공백으로 구분되어 차례대로 주어진다.

그다음 줄에 $N$개의 정수 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 차례대로 주어진다.

Output

첫 줄에 $N$개의 정수 $B_1, B_2, \cdots, B_N$을 공백으로 구분하여 출력한다. 이때, 학생들이 수직선 위에 서는 방법 $\left[ B_1, B_2, \cdots, B_N \right]$은 지문에서 주어진 모든 조건을 만족해야 하며, $B_1$의 값이 최대화되어야 한다.

가능한 출력이 여러 개라면 그중 아무거나 하나를 출력해도 정답으로 인정된다.

Examples

Sample input 1
4 0
5 2 7 3
Sample output 1
2 2 2 2
Sample input 2
5 2
1 4 10 9 13
Sample output 2
1 3 5 7 9
Sample input 3
4 3
2 1 5 9
Sample output 3
-2 1 4 7

Tags

No tags yet

Source