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

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

벽

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

요약
n개 열에 구간 하한 상향과 상한 하향 갱신을 k번 적용한 뒤 각 열의 최종 높이를 출력합니다.
난이도

어려움10점 중 8점

유형
세그먼트 트리
정답자
아직 제출이 없습니다

문제

지안지아는 같은 크기의 벽돌로 nn열 벽을 쌓습니다. 열 번호는 왼쪽부터 00부터 n−1n-1까지입니다. 각 열의 높이는 그 열에 쌓인 벽돌 수입니다.

처음에는 모든 열의 높이가 0입니다. 이후 kk단계를 거치며 매 단계마다 연속 열 구간 [left,right][\text{left}, \text{right}]와 높이 hh가 주어집니다.

  • 더하기 (op=1): 구간 안에서 높이가 hh 미만인 열만 벽돌을 더해 높이를 정확히 hh로 맞춥니다. 이미 hh장 이상이면 그 열은 바꾸지 않습니다.
  • 빼기 (op=2): 구간 안에서 높이가 hh 초과인 열만 벽돌을 빼서 높이를 정확히 hh로 맞춥니다. 이미 hh장 이하이면 그 열은 바꾸지 않습니다.

모든 단계가 끝난 뒤 각 열의 벽돌 수를 구하세요.

입력

첫째 줄: nn, kk.

다음 kk줄: op left right height

  • op=1 더하기, op=2 빼기
  • left, right: 포함 구간 (0≤left≤right<n0 \le \text{left} \le \text{right} < n)
  • height: 목표 높이

출력

모든 단계 후 각 열의 벽돌 수를 왼쪽부터 한 줄에 하나씩 출력한다.

예제6

  1. 예제 1

    입력
    10 6
    1 1 8 4
    2 4 9 1
    2 3 6 5
    1 0 5 3
    1 2 2 5
    2 6 7 0
    
    예상 출력
    3
    4
    5
    4
    3
    3
    0
    0
    1
    0
    
  2. 예제 2

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

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

    입력
    10 2
    1 0 9 10
    2 0 9 0
    
    예상 출력
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    
  5. 예제 5

    입력
    1 2
    1 0 0 7
    1 0 0 3
    
    예상 출력
    7
    
  6. 예제 6

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