Задержки рейсов

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

요약
정렬된 예정 출발 시각과 최소 간격 k가 주어질 때, 두 조건을 지키는 각 비행기의 실제 출발 시각을 계산한다.
난이도

쉬움10점 중 3점

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

문제

Алёна отправляется в долгожданный заслуженный отпуск. Алёна очень боится опоздать на самолёт, поэтому она приехала в аэропорт в момент времени 00. На табло отправления отображается nn рейсов, рейс номер ii (в нумерации с единицы) должен вылететь в момент времени t_it\_i, при этом t_i>t_i−1t\_i > t\_{i - 1} для всех i≥2i \geq 2.

К сожалению, погода в городе N очень непредсказуемая, и именно сейчас в районе аэропорта начался сильный снегопад. Для обеспечения безопасности, службы аэропорта должны после отправления каждого рейса снова очищать взлётно-посадочную полосу от снега, поэтому времена отправления двух последовательных рейсов должны отличаться хотя бы на kk.

Алёна знает, что рейсы будут отправляться в порядке возрастания своих номеров, при этом каждый рейс будет вылетать настолько рано, насколько это возможно, но не менее чем через kk после вылета предыдущего рейса и не ранее изначально запланированного времени отправления t_it\_i.

Поскольку мысли Алёны уже целиком посвящены отпуску, то написать программу, которая определит реальное время отправления каждого из рейсов, предстоит вам. Считайте, что для рейса с номером 11 нет предыдущего и для него не требуется чистить взлётно-посадочную полосу.

입력

В первой строке входных данных записаны два целых числа nn и kk (1≤n≤100,0001 \leq n \leq 100\\,000, 1≤k≤1091 \leq k \leq 10^9) --- количество рейсов, ожидающих отправления, и минимальный необходимый для очистки полосы зазор межу временами отправления двух последовательных самолётов.

Во второй строке записана последовательность целых чисел t_1,t_2,…,t_nt\_1, t\_2, \ldots, t\_n (1≤t_1<t_2<…<t_n≤10181 \leq t\_1 < t\_2 < \ldots < t\_n \leq 10^{18}) --- запланированные времена отправления рейсов.

출력

Выведите последовательность из nn целых чисел, ii-е из которых равняется реальному времени отправления рейса с номером ii.

힌트

Рассмотрим первый пример из условия:

  1. Первый рейс вылетает в запланированное время.
  2. Второй рейс будет задержан из-за необходимости уборки полосы.
  3. Запланированной разницы по времени между третьим и вторым рейсом достаточно, чтобы третий рейс вылетел вовремя несмотря на задержку второго рейса и необходимость уборки полосы.
  4. Четвёртый рейс вылетает вовремя.
  5. Пятый рейс придётся задержать, так как между ним и четвёртым не был запланирован достаточный интервал по времени.
  6. Изначально между пятым и шестым рейсом был запланирован интервал времени, достаточный для уборки взлётно-посадочной полосы, но, из-за задержки пятого рейса, шестой рейс так же вылетит с опозданием.

예제1

  1. 예제 1

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