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

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

어린 양의 안식

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

요약
각 질의마다 체력 x로 시작한 챔피언이 l번째부터 r번째 행동 동안 람의 안식으로 체력이 ceil(x/10) 아래로 내려가지 않을 때, n개 행동 후 체력을 구하고 a_i를 갱신한다.
난이도

어려움10점 중 9점

유형
세그먼트 트리, 구현, 이분 탐색, 수학
정답자
아직 제출이 없습니다

문제

욱제는 두 팀이 서로 싸우는 게임 리그 오브 레전드를 하고 있다. 각 플레이어는 체력 hh와 최대 체력 HH라는 두 정수로 상태를 나타낼 수 있는 챔피언을 조종한다. 챔피언의 체력이 0 이하이면(h≤0h \le 0) 챔피언은 즉시 죽어서 h=0h = 0인 채로 게임에서 이탈한다. 챔피언의 체력이 최대 체력보다 크면(h>Hh > H) 최대 체력으로 조정된다. HH는 항상 양의 정수이다.

한타에서 챔피언의 체력은 오르거나 내릴 수 있다. 더 구체적으로, 한타 동안 챔피언은 nn개의 행동을 겪는다. ii번째(1≤i≤n1 \le i \le n) 행동은 위 규칙에 따라 챔피언의 체력을 aia_i만큼 증가시킨다. aia_i가 양수면 챔피언이 회복된 것이고, aia_i가 음수면 공격받은 것이다. aia_i가 0이면 챔피언에게 아무 일도 일어나지 않는다.

욱제가 리그 오브 레전드에서 가장 좋아하는 챔피언은 킨드레드라는 이름의 어린 양이다. 킨드레드는 어린 양의 안식이라는 궁극기를 가지고 있다. 이 능력이 무엇을 하는지 살펴보자.

형식적으로, 최대 체력이 HH인 챔피언을 생각하자. 욱제가 ll번째 행동 직전부터 rr번째 행동 직후까지 어린 양의 안식을 사용하면, 이 행동들 동안 챔피언의 체력은 ⌈H10⌉\lceil \frac{H}{10} \rceil 아래로 내려가지 않는다. ll번째 행동 직전에 챔피언의 체력이 ⌈H10⌉\lceil \frac{H}{10} \rceil 이하였거나, 어떤 l≤i≤rl \le i \le r에 대해 ii번째 행동 후에 가정상 ⌈H10⌉\lceil \frac{H}{10} \rceil 이하가 된다면, 체력은 ⌈H10⌉\lceil \frac{H}{10} \rceil로 설정되고 rr번째 행동이 끝난 뒤까지 더 이상 변하지 않는다. 그렇지 않으면 어린 양의 안식은 챔피언의 체력 변화에 영향을 주지 않는다.

어린 양의 안식을 언제 사용할지 올바르게 결정하는 것은 매우 중요하다. 욱제는 판단력을 기르고 싶다. 하지만 한타는 너무 복잡해서 어린 양의 안식을 언제 사용해야 할지 알기 어렵다. 그를 돕기 위해 다음 qq개의 질의를 처리하자.

  • 1 l r x: 챔피언의 최대 체력은 xx이고 체력은 xx에서 시작한다. ll번째 행동 직전부터 rr번째 행동 직후까지 어린 양의 안식이 활성화된다. nn개의 행동이 끝난 뒤 챔피언의 체력을 출력한다. 챔피언이 죽으면 0을 출력한다. (1≤l≤r≤n,1≤x≤109)(1 \le l \le r \le n, 1 \le x \le 10^9).
  • 2 i x: aia_i를 xx로 갱신한다. (1≤i≤n,−109≤x≤109)(1 \le i \le n, -10^9 \le x \le 10^9).

입력

첫째 줄에 두 정수 nn과 qq가 주어진다. (1≤n,q≤300 000)(1 \le n, q \le 300\,000)

둘째 줄에 nn개의 정수가 주어진다. ii번째 정수는 aia_i이다. (∣ai∣≤109)(|a_i| \le 10^9)

다음 qq개의 줄에 설명한 형태의 질의를 나타내는 정수들이 주어진다.

1번 질의는 적어도 하나 주어진다.

출력

각 1번 질의에 대해 답을 나타내는 정수를 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

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

    입력
    6 6
    2 5 -3 8 1 -4
    1 2 5 7
    1 1 3 2
    2 2 -1
    1 4 6 2
    2 1 -1
    1 1 6 6
    
    예상 출력
    3
    0
    0
    1