만드는 중입니다

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

멜론

면접 대비

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

요약
각 시작 번호 x에 대해 x번부터 N번까지 멜론을 순서대로 L 이하로 담을 때 필요한 상자 수와 마지막 상자의 무게를 구합니다.
난이도

보통10점 중 6점

유형
그리디, 누적 합, 투 포인터, 동적 계획법
정답자
아직 제출이 없습니다

문제

EGOI 농장에서 직원들이 멜론을 받아 출하한다. 오늘 아침 NN개의 멜론이 들어왔다. 멜론에는 1번부터 NN번까지 번호가 붙어 있고, ii번 멜론(1≤i≤N1 \le i \le N)의 무게는 AiA_i이다.

리에는 EGOI 농장에서 멜론을 상자에 담는 일을 한다. 정수 xx(1≤x≤N1 \le x \le N)가 정해지면, 리에는 멜론 x,x+1,…,Nx, x+1, \dots, N을 이 순서대로 받는다. 그녀는 다음 과정을 반복해서 멜론을 상자에 담는다.

  • 리에는 빈 상자를 하나 가져와서 멜론을 계속 넣는다. 다음 멜론을 넣었을 때 상자 안 멜론의 총 무게가 LL을 넘으면, 그 멜론은 넣지 않는다. 그러고 나서 그녀는 상자를 출하한다. 이 경우 다음 멜론은 새 상자에 넣는다.

멜론 NN을 상자에 넣고 나서 그 상자를 출하하면 작업이 끝난다.

리에는 가능한 모든 xx에 대해 미리 준비하고 싶어 한다. 멜론의 무게 정보와 상자의 최대 무게 LL이 주어질 때, 각 xx에 대해 리에가 출하하는 상자의 개수와 마지막 상자에 담긴 멜론의 총 무게를 구하는 프로그램을 작성하라.

입력

첫 줄에 NN과 LL이 주어진다. 다음 NN개의 줄에는 A1,A2,…,ANA_1, A_2, \dots, A_N이 한 줄에 하나씩 주어진다.

N L
A_1
A_2
\vdots
A_N

출력

NN개의 줄을 출력한다. ii번째 줄에는 x=ix = i일 때 출하하는 상자의 개수와 마지막 상자에 담긴 멜론의 총 무게를 공백으로 구분해 출력한다.

제한

  • 1≤N≤200 0001 \le N \le 200\,000
  • 1≤L≤1 000 000 0001 \le L \le 1\,000\,000\,000 (=109= 10^9)
  • 1≤Ai≤L1 \le A_i \le L (1≤i≤N1 \le i \le N)

예제3

  1. 예제 1

    입력
    7 100
    20
    80
    50
    40
    20
    80
    10
    
    예상 출력
    4 10
    4 10
    3 10
    2 90
    2 10
    1 90
    1 10
    
  2. 예제 2

    입력
    6 160
    63
    63
    63
    63
    63
    63
    
    예상 출력
    3 126
    3 63
    2 126
    2 63
    1 126
    1 63
    
  3. 예제 3

    입력
    5 20
    7
    10
    4
    6
    8
    
    예상 출력
    2 18
    2 8
    1 18
    1 14
    1 8