Đường đi qua K cạnh

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1600 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một cây gồm \(N\) đỉnh và \(N-1\) cạnh. Có \(Q\) truy vấn, mỗi truy vấn cho bởi bộ năm số \((x, y, a, b, k)\). Với mỗi truy vấn, hãy xác định xem có tồn tại đường đi từ \(a\) đến \(b\) qua đúng \(k\) cạnh hay không, nếu cây được nối thêm một cạnh nối giữa hai đỉnh \(x\) và \(y\). Lưu ý rằng đường đi có thể đi qua các đỉnh và các cạnh nhiều lần.

Input

  • Dòng đầu tiên chứa hai số nguyên \(N, Q\) (\(3 \le N, Q \le 10^5\)) lần lượt là số đỉnh và số truy vấn.
  • \(N-1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên thể hiện một cạnh của cây.
  • \(Q\) dòng tiếp theo, mỗi dòng chứa năm số nguyên \(x, y, a, b, k\) (\(1 \le x, y, a, b \le N, 1 \le k \le 10^9\)) mô tả một truy vấn.

Output

  • Ghi ra \(Q\) dòng, mỗi dòng trả lời cho một truy vấn tương ứng: ghi \(1\) nếu tồn tại đường đi thỏa mãn, ngược lại ghi \(0\).

Example

Test 1

Input
5 5
1 2
2 3
3 4
4 5
1 3 1 2 2
1 4 1 3 2
1 4 1 3 3
4 2 3 3 9
5 2 3 3 9
Output
1
1
0
1
0
Note
  • Truy vấn 1: Đi như sau \(1 \to 3 \to 2\).
  • Truy vấn 2: Đi như sau \(1 \to 2 \to 3\).
  • Truy vấn 4: Đi như sau \(3 \to 4 \to 2 \to 3 \to 4 \to 2 \to 3 \to 4 \to 2 \to 3\).


Nguồn: CD DHBB 2020

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.