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

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

신촌 수열과 쿼리

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

요약
점 갱신이 있는 수열에서, 2번 질의마다 i를 포함하고 모든 원소가 j 이상인 연속 구간의 합 중 최댓값을 구한다.
난이도

어려움10점 중 9점

유형
세그먼트 트리, 동적 계획법, 분할 정복, 이분 탐색
정답자
아직 제출이 없습니다

문제

"신촌 연합에서도 쿼리 문제가 많이 나오면 좋겠어!"

어렸을 적 djs100201의 작은 꿈이었다.

신촌 연합의 첫 수열과 쿼리 문제를 풀어보자.

길이가 NN인 정수 수열 a1,a_1, a2,a_2, ⋯ ,\cdots, aNa_N이 주어진다.

이때 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • 11 ii jj : aia_i를 jj로 바꾼다. (1≤j≤1091 \le j \le 10^9)
  • 22 ii jj : 다음 조건을 만족하는 구간 [l,r][l, r] 중에서 구간합의 최댓값을 구해 출력한다. (1≤j≤ai1 \le j \le a_i)

조건: l≤i≤rl \le i \le r이면서, ala_l부터 ara_r까지 모든 원소는 jj 이상이다.

입력

첫째 줄에 수열의 크기 NN이 주어진다. (1≤N≤200 0001 \le N \le 200\,000)

둘째 줄에는 수열의 원소 a1,a_1, a2,a_2, ⋯ ,\cdots, aNa_N이 주어진다. (1≤ai≤1091 \le a_i \le 10^9)

셋째 줄에는 쿼리의 개수 MM이 주어진다. (1≤M≤200 0001 \le M \le 200\,000)

넷째 줄부터 한 줄에 하나씩 총 MM개의 쿼리가 주어진다.

쿼리마다 입력으로 들어오는 ii와 jj는 정수이며, 문제에서 설명한 범위를 만족한다.

출력

22번 쿼리가 주어질 때마다 정답을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

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