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

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

구간 합 최대

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

요약
주어진 길이별 합 조건을 모두 만족하는 음이 아닌 정수 배열 가운데, 각 길이 K의 연속 구간 합이 가질 수 있는 최댓값을 구한다.
난이도

어려움10점 중 9점

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

문제

승현이는 음이 아닌 정수 NN개로 이루어진 배열을 가지고 논다. 이 배열에는 특별한 조건이 MM개 붙어 있다. ii번째 조건은 길이가 LiL_i인 연속한 구간을 어떻게 잡아도 그 구간의 합이 SiS_i를 넘지 않는다는 뜻이다.

승현이는 조건을 모두 만족하는 배열을 전부 만들어 놓고, 11 이상 NN 이하의 모든 정수 KK마다 각 배열에서 길이가 KK인 연속한 구간의 합을 모두 구한 뒤 그중 가장 큰 값을 찾았다. 계산에 자신이 없어 결과를 확신하지 못한다고 하니 대신 구해 주자.

정리하면 KK마다 조건을 모두 만족하는 배열 하나와 그 배열에서 길이가 KK인 연속한 구간 하나를 함께 골랐을 때 나올 수 있는 구간 합의 최댓값을 구하는 문제다.

입력

첫째 줄에 배열을 이루는 정수의 개수 NN(1≤N≤200 0001 \le N \le 200\,000)과 특별한 조건의 개수 MM(1≤M≤2001 \le M \le 200)이 주어진다.

둘째 줄부터 MM개의 줄에 조건을 나타내는 두 정수 LiL_i와 SiS_i가 주어진다. (1≤i≤M1 \le i \le M, 1≤Li≤N1 \le L_i \le N, 1≤Si≤1091 \le S_i \le 10^9)

길이가 같은 조건이 여러 번 주어지기도 한다.

출력

NN개의 줄을 출력한다. KK번째 줄에는 조건을 모두 만족하는 배열에서 길이가 KK인 연속한 구간이 가질 수 있는 구간 합의 최댓값을 출력한다.

힌트

N=5N = 5이고 조건이 길이 22에 합 55, 길이 33에 합 77인 경우를 보자. 배열이 [1, 4, 1, 0, 5]이면 길이가 1인 구간 중 합이 5인 것이 있고, 길이가 2인 구간 중 합이 5인 것이 있고, 길이가 4인 구간 중 합이 10인 것이 있다. 배열이 [3, 2, 2, 1, 4]이면 길이가 3인 구간 중 합이 7인 것이 있고, 길이가 5인 구간 중 합이 12인 것이 있다.

예제2

  1. 예제 1

    입력
    5 2
    2 5
    3 7
    
    예상 출력
    5
    5
    7
    10
    12
    
  2. 예제 2

    입력
    4 1
    1 3
    
    예상 출력
    3
    6
    9
    12