만드는 중입니다

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

좌석

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

요약
N명의 승객 중 K명을 L석 좌석에 앉혀, 각 승객의 A_i와 인접한 빈자리당 B_i의 합을 최대화하는 값을 K마다 구합니다.
난이도

어려움10점 중 9점

유형
동적 계획법, 분할 정복, 정렬
정답자
아직 제출이 없습니다

문제

X 도시의 지하철은 조금 특이하다. 열차는 객차 한 칸으로 이루어져 있고, 객차에는 한 줄로 늘어선 좌석이 LL개 있다. 객차에는 00번부터 N−1N-1번까지 번호가 붙은 승객이 NN명 타고 있다. 각 승객의 쾌적함은 다음과 같이 정해진다.

  • 승객이 서 있으면 쾌적함은 00이다.
  • 승객이 앉으면 앉는 것만으로 AiA_i의 쾌적함을 얻고, 그 승객과 이웃한 승객 또는 좌석 끝 사이에 있는 빈 좌석마다 BiB_i의 쾌적함을 추가로 얻는다.

예를 들어 승객이 3명이고 A0=5A_0=5, B0=2B_0=2, A1=10A_1=10, B1=1B_1=1, A2=1A_2=1, B2=1B_2=1이며 좌석이 L=6L=6개라고 하자. 빈 좌석을 _로 나타내면 다음과 같이 앉아 있는 경우를 생각할 수 있다.

_ 0 _ _ 1 _

승객 2는 서 있다.

  • 승객 0은 앉아서 55를 얻고, 빈 좌석(왼쪽 1석, 오른쪽 2석)으로 66을 얻어 합계 1111이다.
  • 승객 1은 앉아서 1010을 얻고, 빈 좌석(왼쪽 2석, 오른쪽 1석)으로 33을 얻어 합계 1313이다.
  • 승객 2는 서 있으므로 00이다.

모든 승객의 쾌적함 합계는 2424이다.

NN, LL과 각 승객의 특성이 주어졌을 때, 앉은 승객 수가 11명부터 NN명까지인 각 경우에 대해 쾌적함 합계의 최댓값을 구하는 프로그램을 작성하라.

입력

첫 번째 줄에 승객 수 NN과 좌석 수 LL이 두 정수로 주어진다. 이어지는 NN개의 줄에는 승객 ii의 특성인 음이 아닌 정수 AiA_i와 BiB_i가 주어진다.

출력

NN개의 줄을 출력한다. KK번째 줄에는 정확히 KK명이 앉아 있을 때 승객들이 얻을 수 있는 쾌적함 합계의 최댓값을 출력한다. K>LK > L이면 KK명을 LL개의 좌석에 앉히는 유효한 배치가 없으므로 00을 출력한다.

제한

  • 1≤N≤100 0001 \le N \le 100\,000
  • 1≤L≤200 0001 \le L \le 200\,000
  • 0<Ai,Bi<1090 < A_i, B_i < 10^9

예제2

  1. 예제 1

    입력
    3 2
    1 2
    3 4
    5 6
    
    예상 출력
    11
    8
    0
    
  2. 예제 2

    입력
    3 3
    1 2
    3 4
    5 100
    
    예상 출력
    205
    112
    9