Submit solution


Points: 0.47 (partial)
Time limit: 1.0s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
Croatian Open 2006
Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Để truy bắt tội phạm, cảnh sát xây dựng một hệ thống máy tính mới. Bản đồ khu vực bao gồm ~N~ thành phố và ~E~ đường nối ~2~ chiều. Các thành phố được đánh số từ ~1~ đến ~N~.

Cảnh sát muốn bắt các tội phạm di chuyển từ thành phố này đến thành phố khác. Các điều tra viên, theo dõi bản đồ, phải xác định vị trí thiết lập trạm gác. Hệ thống máy tính mới phải trả lời được ~2~ loại truy vấn sau:

  • ~1~. Đối với hai thành phố ~A~, ~B~ và một đường nối giữa hai thành phố ~G_{1}~, ~G_{2}~, hỏi tội phạm có thể di chuyển từ ~A~ đến ~B~ nếu đường nối này bị chặn (nghĩa là tên tội phạm không thể sử dụng con đường này) không?
  • ~2~. Đối với ~3~ thành phố ~A~, ~B~, ~C~, hỏi tội phạm có thể di chuyển từ ~A~ đến ~B~ nếu như toàn bộ thành phố ~C~ bị kiểm soát (nghĩa là tên tội phạm không thể đi vào thành phố này) không?

Input

  • Dòng đầu tiên chứa ~2~ số nguyên ~N~ và ~E~ ~(2 \leq N \leq 100 000~, ~1 \leq E \leq 500 000)~, số thành phố và số đường nối.

  • Mỗi dòng trong số ~E~ dòng tiếp theo chứa ~2~ số nguyên phân biệt thuộc phạm vi ~[1~, ~N]~ - cho biết nhãn của hai thành phố nối với nhau bởi một con đường. Giữa hai thành phố có nhiều nhất một đường nối.

  • Dòng tiếp theo chứa số nguyên ~Q~ ~(1 \leq Q \leq 300 000)~, số truy vấn được thử nghiệm trên hệ thống.

  • Mỗi dòng trong ~Q~ dòng tiếp theo chứa ~4~ hoặc ~5~ số nguyên. Số đầu tiên cho biết loại truy vấn - ~1~ hoặc ~2~.

    • Nếu loại truy vấn là ~1~, tiếp theo trên cùng dòng là ~4~ số nguyên ~A~, ~B~, ~G_{1}~, ~G_{2}~ với ý nghĩa như đã mô tả. ~A~ khác ~B~; ~G_{1}~, ~G_{2}~ mô tả một con đường có sẵn.
    • Nếu loại truy vấn là ~2~, tiếp theo trên cùng dòng là ~3~ số nguyên ~A~, ~B~, ~C~ với ý nghĩa như đã mô tả. ~A~, ~B~, ~C~ đôi một khác nhau.

Dữ liệu được cho sao cho ban đầu luôn có cách di chuyển giữa hai thành phố bất kỳ.

Output

Gồm ~Q~ dòng, mỗi dòng chứa câu trả lời cho một truy vấn. Nếu câu trả lời là khẳng định, in ra "yes". Nếu câu trả lời là phủ định, in ra "no".

Sample Input

13 15
1 2
2 3
3 5
2 4
4 6
2 6
1 4
1 7
7 8
7 9
7 10
8 11
8 12
9 12
12 13
5
1 5 13 1 2
1 6 2 1 4
1 13 6 7 8
2 13 6 7
2 13 6 8

Sample Output

yes
yes
yes
no
yes

Comments

Please read the guidelines before commenting.



  • -1
    minh471  commented on Sept. 18, 2024, 7:37 a.m. edited

    test bai nay manh qua


  • -2
    Dung_1522  commented on April 8, 2024, 6:24 p.m.

    volo test yeu


  • -2
    duong2803  commented on Dec. 7, 2023, 9:53 a.m.

    test yếu, làm sai 1 trường hợp vẫn AC


  • -5
    tonblan  commented on Oct. 3, 2023, 4:40 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -2
    Khanhcsp1  commented on Aug. 14, 2023, 3:13 a.m. edited

    .


  • -2
    Khanhcsp1  commented on Aug. 14, 2023, 3:12 a.m.

    bai kho


  • -13
    tboros2  commented on July 27, 2023, 2:22 p.m. edited

    This comment is hidden due to too much negative feedback. Show it anyway.