만드는 중입니다

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

지각하기 싫어

면접 대비

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

요약
노선 인구를 갱신하면서 가장 빠른 경로를 이루는 두 노선 번호를 찾고, 같은 값이면 번호가 작은 노선을 출력합니다.
난이도

보통10점 중 4점

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

문제

김한양은 3학년이 되었지만 여전히 지각을 자주 한다. 인예본 강의도 두 번 재수강한 끝에 P를 받았다. 더 이상 지각하기 싫은 김한양은 애지문에서 ITBT관까지 가장 빠른 경로를 찾고, 그 결과를 계속 갱신하는 프로그램을 만들려고 한다.

애지문에서 ITBT관으로 가려면 반드시 대운동장을 지나야 한다. 애지문에서 대운동장까지 가는 경로는 총 NN개이며, 1번부터 NN번까지 번호가 붙어 있다. 대운동장에서 ITBT관까지 가는 경로는 총 MM개이며, N+1N+1번부터 N+MN+M번까지 번호가 붙어 있다. 각 경로의 인구는 계속 바뀌고, 경로를 지나는 시간은 그 경로의 인구에 비례한다. 각 경로의 인구 변화가 주어질 때, 다음 두 연산을 수행하는 프로그램을 작성하자.

  • U xx yy: xx번 경로의 인구를 yy로 바꾼다. (1≤x≤N+M1 \le x \le N+M, 1≤y≤1001 \le y \le 100)
  • L: 애지문에서 대운동장까지 aa번 경로로 가고, 대운동장에서 ITBT관까지 bb번 경로로 가는 길이 가장 빠른 길이면 aa와 bb를 공백으로 구분하여 출력한다. 가장 빠른 길이 여러 개이면 aa가 가장 작은 경우를 고른다. 그런 길도 여러 개이면 bb가 가장 작은 경우를 고른다.

입력

첫 줄에 애지문에서 대운동장까지의 경로 수 NN(1≤N≤100 0001 \le N \le 100\,000)과 대운동장에서 ITBT관까지의 경로 수 MM(1≤M≤100 0001 \le M \le 100\,000)이 공백으로 구분되어 주어진다.

둘째 줄에 애지문에서 대운동장까지 NN개 경로의 초기 인구가 공백으로 구분되어 주어진다.

셋째 줄에 대운동장에서 ITBT관까지 MM개 경로의 초기 인구가 공백으로 구분되어 주어진다.

넷째 줄에 수행할 연산의 수 KK(1≤K≤200 0001 \le K \le 200\,000)가 주어진다. 다섯째 줄부터 KK개의 줄에 연산이 한 줄에 하나씩 주어진다.

출력

L 연산의 결과를 한 줄에 하나씩 출력한다.

예제4

  1. 예제 1

    입력
    7 6
    13 92 51 97 27 93 74
    67 58 93 78 94 41
    5
    U 11 2
    L
    U 1 7
    L
    U 6 13
    
    예상 출력
    1 11
    1 11
    
  2. 예제 2

    입력
    10 10
    1 2 3 4 5 6 7 8 9 10
    11 12 13 14 15 16 17 18 19 20
    10
    U 1 2
    L
    U 3 1
    L
    U 15 10
    L
    U 11 10
    L
    U 13 10
    L
    
    예상 출력
    1 11
    3 11
    3 15
    3 11
    3 11
    
  3. 예제 3

    입력
    3 4
    4 28 30
    20 21 83 9
    8
    U 5 3
    L
    U 1 1
    L
    U 2 6
    L
    U 1 14
    L
    
    예상 출력
    1 5
    1 5
    1 5
    2 5
    
  4. 예제 4

    입력
    5 4
    5 46 31 38 85
    80 27 17 45
    10
    U 7 1
    L
    U 9 5
    L
    U 7 3
    L
    U 5 3
    L
    U 8 5
    L
    
    예상 출력
    1 7
    1 7
    1 7
    5 7
    5 7