만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

항공편 지연

면접 대비

시간 제한2초메모리 제한1024 MB

요약
예정 시각 t_i와 간격 k가 주어질 때, 각 항공편의 실제 출발 시각은 예정 시각과 직전 출발 시각에 k를 더한 값 중 큰 값입니다.
난이도

쉬움10점 중 2점

유형
시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

알료나는 오랫동안 기다려 온 휴가를 떠난다. 비행기를 놓칠까 봐 몹시 걱정한 알료나는 시각 00에 공항에 도착했다. 출발 안내판에는 nn개의 항공편이 표시되어 있다. ii번 항공편(번호는 1부터 매긴다)은 시각 tit_i에 출발해야 하며, 모든 i≥2i \geq 2에 대해 ti>ti−1t_i > t_{i-1}이다.

도시 N의 날씨는 예측하기 어려운데, 지금 공항 주변에 폭설이 내리기 시작했다. 안전을 위해 공항 직원은 항공편이 출발할 때마다 활주로의 눈을 치워야 한다. 따라서 연속한 두 항공편의 출발 시각은 최소 kk 이상 차이가 나야 한다.

알료나는 항공편이 번호 순서대로 출발한다는 것을 알고 있다. 각 항공편은 가능한 한 빨리 출발하되, 직전 항공편이 출발한 뒤 kk 이상 지나기 전에는 출발하지 않고, 예정 시각 tit_i보다 일찍 출발하지도 않는다.

알료나는 이미 휴가 생각뿐이므로, 각 항공편의 실제 출발 시각을 구하는 프로그램은 여러분이 작성한다. 1번 항공편에는 앞선 항공편이 없으므로 활주로를 치울 필요가 없다.

입력

첫째 줄에 정수 nn과 kk가 주어진다(1≤n≤100 0001 \leq n \leq 100\,000, 1≤k≤1091 \leq k \leq 10^9). nn은 출발을 기다리는 항공편의 수이고, kk는 활주로 제설에 필요한 연속한 두 출발 시각 사이의 최소 간격이다.

둘째 줄에는 정수 t1,t2,…,tnt_1, t_2, \ldots, t_n이 주어진다(1≤t1<t2<…<tn≤10181 \leq t_1 < t_2 < \ldots < t_n \leq 10^{18}). 이는 항공편들의 예정 출발 시각이다.

출력

nn개의 정수를 출력한다. ii번째 정수는 ii번 항공편의 실제 출발 시각이다.

힌트

문제에 나온 첫 번째 예제를 살펴보자.

  1. 1번 항공편은 예정 시각에 출발한다.
  2. 2번 항공편은 활주로를 치워야 하므로 지연된다.
  3. 3번 항공편과 2번 항공편 사이의 예정 간격은 2번 항공편이 지연되고 활주로를 치워야 하는 상황에서도 3번 항공편이 제시간에 출발하기에 충분하다.
  4. 4번 항공편은 제시간에 출발한다.
  5. 5번 항공편은 4번 항공편과의 예정 간격이 충분하지 않았으므로 지연되어야 한다.
  6. 5번 항공편과 6번 항공편 사이의 예정 간격은 활주로를 치우기에 충분했지만, 5번 항공편이 지연되었기 때문에 6번 항공편도 늦게 출발한다.

예제1

  1. 예제 1

    입력
    6 3
    1 2 7 10 12 15
    
    예상 출력
    1 4 7 10 13 16