아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

안테나 분석

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

요약
각 날짜 i마다 j <= i인 모든 j에 대해 |x_i - x_j| - c*|i - j|의 최댓값을 구해 출력한다.
난이도

보통10점 중 7점

유형
동적 계획법, 세그먼트 트리, 배열, 수학
정답자
아직 제출이 없습니다

문제

Åke는 자신이 사는 도시에 수상한 5G 방사선이 있을지도 모른다는 이야기를 들었다. 이를 확인하려고 그는 지붕 위의 안테나로 매일 5G 수치를 측정한다. 하지만 그는 이 데이터를 어떻게 분석해야 할지 모른다.

nn일 연속의 측정값이 수열 x1,…,xnx_1, \ldots, x_n으로 주어진다(xix_i는 ii일째의 측정값). 또한 Åke가 기대하는 일별 방사선 변동의 크기를 나타내는 상수 cc가 주어진다. 각 날짜 ii에 대해, 예상 변동을 고려한 뒤 ii일째 측정값과 그 이전 날짜의 측정값 사이의 가장 큰 차이를 구하려고 한다. 정확히는 j≤ij \le i일 때 [|x_i-x_j| - c \cdot |i-j|]의 최댓값을 구하는 것이다. 즉, 최근에 일어난 5G 수치의 큰 차이를 찾으려는 것이다.

입력

첫째 줄에 두 정수 nn과 cc가 주어진다(1≤n≤4⋅1051 \le n \le 4 \cdot 10^5, 1≤c≤1061 \le c \le 10^6). nn은 측정 횟수, cc는 기대되는 일별 변동이다. 둘째 줄에 nn개의 정수 x1,x2,…,xnx_1,x_2,\dots,x_n이 주어진다(1≤xi≤1061 \le x_i \le 10^6, i=1,2,…,ni=1,2,\dots,n). 이는 nn일 동안의 측정값이다.

출력

nn개의 정수 y1,…,yny_1, \ldots, y_n을 출력한다. yiy_i는 ii일째의 가장 큰 차이이다.

예제1

  1. 예제 1

    입력
    5 1
    2 7 1 5 4
    
    예상 출력
    0 4 5 3 1