만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

나비와 전봇대 (Hard)

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

요약
기둥 높이가 바뀌는 상황에서 시작 기둥 p를 정해 전선 길이 합이 가장 큰 유효한 연결을 고르고, 그 제곱 비용을 구합니다.
난이도

어려움10점 중 9점

유형
동적 계획법, 세그먼트 트리, 기하
정답자
아직 제출이 없습니다

문제

나비는 새로 건설할 도시의 전봇대를 관리하는 일을 맡았다. 아직 전선이 연결되지 않았기 때문에, 나비는 이 전봇대들 사이에 전선을 연결해야 한다. 전봇대는 11의 간격으로 직선을 따라 총 NN개가 세워져 있으며 왼쪽부터 번호가 11에서 NN까지 붙어 있다. 첫 번째 전봇대의 위치는 11이고, 초기에 ii번 전봇대의 높이는 HiH_i이다. 좌표평면에서 ii번 전봇대는 (i,0)(i,0)에서 (i,Hi)(i,H_i)를 잇는 선분이다.

전선은 두 전봇대의 가장 윗부분을 최단 거리로 잇는다. 즉 ii번 전봇대와 jj번 전봇대가 연결되면 (i,Hi)(i,H_i)와 (j,Hj)(j,H_j)를 잇는 선분이 그어진다. 이때 연결 비용은 전선 길이의 제곱이다.

나비는 준혁이에게 시작 전봇대의 번호 pp를 받는다. 나비는 pp번 전봇대를 포함하여 몇 개의 전봇대를 고르고, 이들을 전선으로 연결한다. 고른 전봇대를 번호의 오름차순으로 정렬하여 S1,S2,…,SkS_1, S_2, \ldots, S_k라 하면, 1≤i<k1 \le i < k인 모든 ii에 대해 SiS_i번 전봇대와 Si+1S_{i+1}번 전봇대를 전선으로 잇는다.

나비는 다음 조건을 만족하도록 전봇대를 고르고 연결해야 한다.

  • 연결한 전선은 전봇대와 교차해서는 안 된다. 다만 전선이 어떤 전봇대 ii의 꼭대기 (i,Hi)(i,H_i)에서 만나는 것은 가능하다.
  • pp를 기준으로 왼쪽으로 갈수록 고른 전봇대의 높이가 단조증가하고, 오른쪽으로 갈수록 고른 전봇대의 높이도 단조증가한다. 즉 St=pS_t = p이면 HS1≥HS2≥⋯≥HSt−1≥Hp≤HSt+1≤HSt+2≤⋯≤HSkH_{S_1} \ge H_{S_2} \ge \cdots \ge H_{S_{t-1}} \ge H_p \le H_{S_{t+1}} \le H_{S_{t+2}} \le \cdots \le H_{S_k}를 만족해야 한다.
  • 나비는 연결한 전선 길이의 합이 최대가 되도록 연결하려 한다. 이런 방법이 여러 가지면, 연결 비용의 합이 최소인 방법을 택한다.

도시는 아직 건설 중이어서 계획이 바뀌면 전봇대의 높이도 바뀔 수 있다. 준혁이는 나비에게 QQ개의 작업을 준다. 각 작업은 전봇대의 높이를 바꾸거나, 시작 전봇대가 주어졌을 때 연결 비용의 합을 구하는 것이다.

입력

첫째 줄에 NN이 주어진다. (1≤N≤250 000)(1 \le N \le 250\,000)

둘째 줄에 정수 H1,H2,…,HNH_1, H_2, \ldots, H_N이 공백으로 구분되어 주어진다. (1≤Hi≤106)(1 \le H_i \le 10^6)

셋째 줄에 작업의 수 QQ가 주어진다. (1≤Q≤250 000)(1 \le Q \le 250\,000)

넷째 줄부터 QQ개의 줄에 걸쳐 작업을 나타내는 두 정수 aa와 bb가 공백으로 구분되어 주어진다.

  • aa가 00이면, 시작 전봇대의 번호가 bb일 때, 즉 p=bp = b일 때의 연결 비용의 합을 출력한다. (1≤b≤N)(1 \le b \le N)
  • 그렇지 않으면, aa번 전봇대의 높이를 bb로 바꾼다. (1≤b≤106)(1 \le b \le 10^6)

출력

aa가 00인 작업마다 p=bp = b일 때의 연결 비용의 합을 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    5
    5 9 3 5 6
    3
    0 1
    0 3
    0 5
    
    예상 출력
    17
    44
    18
    
  2. 예제 2

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