증권 거래소

일별 주가와 매수 수수료가 주어질 때, 한 번에 한 주만 보유하고 산 주식은 나중에 팔아야 한다는 조건에서 얻을 수 있는 최대 총이익을 구한다.

보통5동적 계획법그리디배열구현면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

초보 투자자가 주식 투자를 배우려고 한다. 경험이 없어서 회사 한 곳만 고른 뒤, 그 회사 주식의 하루 종가를 N일 동안 기록했다. 기록을 마치고 나니 그 기간에 사고팔았다면 얼마를 벌었을지 궁금해졌다. 이 투자자는 사실 자산가라서 주식을 몇 주든 살 돈이 있다. 다만 신중한 성격이라 어느 시점에도 주식을 한 주보다 많이 보유하지 않기로 정했다.

거래에는 항상 중개인이 끼므로, 증권사는 주식을 한 주 살 때마다 고정 수수료 C를 받는다.

하루에 할 수 있는 행동은 한 주를 사거나, 보유한 한 주를 팔거나, 아무것도 하지 않는 것 중 하나다. 산 주식은 그보다 뒤의 날에 팔아야 한다. 거래 한 번의 이익은 판 가격에서 산 가격과 수수료 C를 뺀 값이다. N일 중 며칠을 골라 사고팔아 얻을 수 있는 이익의 최댓값을 구하라. 한 번도 거래하지 않는 선택도 가능하며, 그때의 이익은 0이다.

입력

첫째 줄에 정수 N과 C가 주어진다. (1N2×1051 \le N \le 2 \times 10^5, 0C300 \le C \le 30)

둘째 줄에 1일부터 N일까지의 주가 P1,P2,,PNP_1, P_2, \dots, P_N이 순서대로 주어진다. 각 주가는 1Pi10001 \le P_i \le 1000을 만족한다.

출력

최대 이익을 정수 하나로 한 줄에 출력한다.