CSES - Counting Paths | Đếm đường đi

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: 1800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một cây có \(n\) nút, các nút trên cây được đánh số lần lượt là \(1,2,3,...,n\)\(m\) con đường.

Nhiệm vụ của bạn là với mỗi nút, hãy đếm số đường đi chứa nút này.

Input

  • Dòng đầu tiên chứa 2 số \(n\)\(m\)
  • \(n - 1\) dòng tiếp theo, mỗi dòng chứa chứa 2 số \(a\)\(b\), thể hiện rằng có một cạnh nối hai nút \(a\)\(b\)
  • \(m\) dòng cuối, mỗi dòng chứa 2 số \(a\)\(b\), thể hiện rằng có một con đường từ nút \(a\) tới \(b\)

Constraints

  • \(1 \leq n, m \leq 2 \cdot 10^5\)
  • \(1 \leq a, b \leq n\)

Output

  • In ra \(n\) số: số lượng đường đi qua mỗi nút \(1,2,3,\dots,n\)

Example

Test 1

Input
5 3
1 2
1 3
3 4
3 5
1 3
2 5
1 4
Output
3 1 3 1 1

Bình luận (1)

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