[DHBB24 - LTT - 11] Bài 2: Segtree

Xem dạng PDF

Gửi bài giải

Điểm: 50,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Bạn được bố tặng 1 trò chơi giải đố hình cây gồm ~N~ đỉnh gốc tại 1, và 1 dãy ~A~ có ~M~ số. Chơi ~Q~ lượt, mỗi lượt bố sẽ cho bạn 1 yêu cầu thuộc 1 trong 2 dạng sau:

  • Bố đưa bạn 2 số ~i~ và ~u~, bạn phải thay đổi ~a[i]~ thành ~u~.
  • Bố đưa bạn 3 số ~l, r, u~, bạn phải tìm được cặp ~x, y~ (~l \le x \le y \le r~) sao cho nút cha chung gần nhất của ~a[x], a[x+1], \dots, a[y]~ là ~u~.

Yêu cầu: Bạn hãy tìm cách chiến thắng bố trong trò chơi này bằng cách in ra độ dài ngắn nhất của đoạn ~x, y~ thỏa mãn yêu cầu.

Input

  • Dòng đầu tiên chứa 3 số ~N, M, Q~ (~N, M, Q < 200000~) cách nhau 1 dấu cách.
  • ~N-1~ dòng tiếp theo là các cạnh của cây.
  • Dòng tiếp theo chứa ~M~ số của dãy ~A~.
  • ~Q~ dòng kế tiếp là các yêu cầu của mỗi lượt chơi, thuộc 1 trong 2 dạng:
    • ~1 i u~
    • ~2 l r u~

Output

  • Với mỗi truy vấn loại 2, in ra độ dài ngắn nhất của đoạn ~x, y~. Nếu không có đoạn thỏa mãn, in -1.

Sample Input 1

3 3 2
1 2
1 3
1 2 3
2 1 1 1
2 2 3 1

Sample Output 1

1
2

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.