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

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

구간 셔플

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

요약
배열과 m개의 구간이 주어질 때, 각 구간에서 원소 하나를 1 증가시키거나 구간을 임의로 재배열할 수 있으며, 각 위치 k에 대해 가능한 A_k의 최댓값을 구합니다.
난이도

어려움10점 중 9점

유형
그리디, 정렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

카나데에게 길이 nn의 수열 A1...nA_{1...n}과, 1부터 nn까지의 인덱스로 이루어진 mm개의 구간 [Li,Ri][L_i, R_i]가 있다. 양 끝 인덱스는 구간에 포함된다. 카나데는 구간마다 하나씩, 총 mm번의 연산을 순서대로 수행한다. ii번째 연산에서 카나데는 다음 두 동작 중 하나를 골라 수행할 수 있다.

  1. x∈[Li,Ri]x \in [L_i, R_i]를 골라 Ax:=Ax+1A_x := A_x + 1로 바꾼다.
  2. ALi...RiA_{L_i...R_i}를 카나데가 원하는 순서로 재배열한다.

모든 연산을 마친 뒤 AkA_k의 최댓값을 구하라. 각 k∈[1,n]k \in [1, n]에 대해 답을 구하라.

입력

첫 줄에 수열의 길이와 연산 횟수를 나타내는 두 정수 nn과 mm이 주어진다 (1≤n,m≤2⋅1051 \leq n, m \leq 2 \cdot 10^5). 둘째 줄에는 초기 수열 A1,…,AnA_1, \ldots, A_n이 주어진다 (0≤Ai≤2⋅1050 \leq A_i \leq 2 \cdot 10^5).

이어서 mm개의 줄에 ii번째 연산의 구간을 나타내는 두 정수 LiL_i와 RiR_i가 주어진다 (1≤Li≤Ri≤n1 \leq L_i \leq R_i \leq n).

출력

nn개의 정수를 출력한다. ii번째 정수는 mm번의 연산 후 AiA_i가 가질 수 있는 최댓값이다.

예제1

  1. 예제 1

    입력
    4 3
    0 1 0 1
    2 4
    1 3
    2 3
    
    예상 출력
    2 4 3 2