만드는 중입니다

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

페루

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

요약
각 접두사의 비틀을 모두 으깨는 최소 총 노력을 구한 뒤, 이 값들의 23진수 가중합을 10^9+7로 나눈 나머지를 출력합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 슬라이딩 윈도우, 그리디
정답자
아직 제출이 없습니다

문제

오늘 아침 로키가 책상 위에서 딱정벌레 NN마리를 발견했다. 딱정벌레는 0번부터 N−1N-1번까지 번호가 매겨져 있고, 각 딱정벌레 ii의 세기는 SiS_i이다. 로키는 수학 숙제를 하려고 딱정벌레를 으깨고 싶어 한다. 이를 위해 특별한 장갑을 샀고, 이 장갑으로 연속된 딱정벌레 KK마리를 한 번에 칠 수 있다. 로키가 노력 EE를 들이면 세기가 EE 이하인 딱정벌레는 으깨지고, 나머지는 다치지 않고 남는다. 으깨진 딱정벌레도 책상 위의 위치는 그대로 유지된다. 장갑은 원하는 만큼 몇 번이든 사용할 수 있다.

로키는 각 1≤i≤N1 \le i \le N에 대해 처음 ii마리의 딱정벌레를 으깨는 데 필요한 최소 총 노력을 구할 수 있는지 알고 싶어 한다. 수가 너무 많으므로, 다음 식을 109+710^9 + 7로 나눈 나머지를 출력한다. X0×23N−1+X1×23N−2+⋯+XN−1X_0 \times 23^{N-1} + X_1 \times 23^{N-2} + \cdots + X_{N-1}. 여기서 XiX_i는 처음 i+1i+1마리의 딱정벌레를 으깨는 데 필요한 최소 총 노력이다.

제한

  • 1≤N≤2 500 0001 \le N \le 2\,500\,000
  • 1≤K≤N1 \le K \le N
  • 1≤Si≤2 000 000 0001 \le S_i \le 2\,000\,000\,000

예제1

  1. 예제 1

    입력
    8 3
    3 2 9 8 7 11 3 4
    
    예상 출력
    720026253