만드는 중입니다

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

우편 개혁

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

요약
트리에 있는 도시의 탑 높이를 갱신하고, 두 도시 사이 경로에서 가장 높은 탑의 높이를 구합니다.
난이도

보통10점 중 6점

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

문제

플랫랜드에 개혁의 바람이 불고 있다. 최근 도로를 개혁해서 나라의 모든 도시가 서로 이어지게 되었고, 두 도시 사이의 경로는 단 하나뿐이다. 마법사도 개혁하여 각 도시에 마법사가 정확히 한 명씩 남았다. 이제 우편 제도 개혁이 시작되었다.

최근 설립된 우편 회사 "Экс-Федя"는 공동 소포라는 독특한 서비스를 내놓았다. 이 서비스를 쓰면 어떤 경로 위에 있는 모든 도시의 주민에게 일반 소포 요금으로 소포를 보낼 수 있다. 놀랍게도 이 서비스를 쓰기 시작한 쪽은 플랫랜드의 마법사뿐이며, 그들은 서로에게 마법 선인장을 대량으로 보내고 있다.

회사에 예상치 못한 문제가 생겼다. 마법사는 모두 탑에 살고, 탑으로 올라가는 계단은 짓지 않는다. 게다가 탑의 높이를 수시로 바꾼다. 따라서 높이가 hh인 탑에 사는 마법사에게 소포를 전하려면 배달원이 최소 hh 미터의 밧줄을 가지고 있어야 한다.

당신은 물류 부서를 맡았다. 탑의 높이와 그 변화 정보를 바탕으로, 도시 ii와 jj 사이로 소포를 배달하는 배달원에게 지급해야 할 밧줄의 최소 길이를 구하라.

입력

첫 줄에 플랫랜드의 도시 수 nn (1≤n≤500001 \le n \le 50000)이 주어진다. 둘째 줄에는 각 도시의 탑 높이를 나타내는 양의 정수 nn개가 주어지며, 모두 10510^5를 넘지 않는다. 다음 n−1n-1개 줄에는 도로 하나씩을 나타내는 두 정수 uiu_i, viv_i (1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \ne v_i)가 주어진다. 그다음 줄에 질의 수 kk (1≤k≤1000001 \le k \le 100000)가 주어진다. 이후 kk개 줄에는 다음 중 하나의 질의가 주어진다.

  • 도시 ii의 마법사가 탑 높이를 hh로 바꾸었음을 알리는 질의. 형식은 !! ii hh이며, 1≤i≤n1 \le i \le n, 1≤h≤1051 \le h \le 10^5이다.
  • 배달원이 도시 ii에서 jj까지 경로 위의 모든 도시(양 끝 포함)에 소포를 전하기 위해 밧줄을 요청하는 질의. 형식은 ?? ii jj이며, 1≤i,j≤n1 \le i, j \le n이다.

출력

배달 질의마다 배달원에게 지급해야 할 밧줄의 최소 길이를 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 2 3
    1 3
    2 3
    5
    ? 1 2
    ! 1 5
    ? 2 3
    ! 3 2
    ? 1 2
    
    예상 출력
    3
    3
    5
    
  2. 예제 2

    입력
    1
    100
    5
    ! 1 1
    ? 1 1
    ! 1 1000
    ? 1 1
    ! 1 1
    
    예상 출력
    1
    1000