Thành phố quan trọng 2

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

Bản đồ giao thông của hành tinh \(X\) bao gồm \(n\) thành phố được đánh số từ \(1\) đến \(n\)\(m\) đoạn đường một chiều nối các cặp thành phố, giữa hai thành phố bất kỳ có không quá một đoạn đường cùng chiều nối chúng. Thành phố \(s\) là thủ đô của hành tinh, từ đó có thể di chuyển theo các đoạn đường nối giữa các thành phố để đến bất cứ thành phố nào trong số các thành phố còn lại. Thành phố \(t\) là một điểm du lịch ưa thích của người dân thủ đô. Hàng năm có một lượng lớn người dân thủ đô đến nghỉ ngơi tại điểm du lịch hấp dẫn này. Vì thế, trong các mùa du lịch ách tắc giao thông trên đường đi từ \(s\) đến \(t\) thường xuyên xảy ra tại một số nút giao thông. Do đó, Bộ Giao thông của hành tinh \(X\) muốn xác định các nút giao thông này. Ta nói thành phố \(a\) (\(a \neq s\)\(a \neq t\)) là thành phố quan trọng nếu mọi đường đi từ \(s\) đến \(t\) đều phải đi qua \(a\).

Yêu cầu: Hãy xác định số lượng các thành phố quan trọng.

Input

  • Dòng đầu tiên chứa bốn số nguyên dương \(n, m, s, t\) (\(3 \le n \le 10^4, m \le 10^5\)).
  • \(m\) dòng tiếp theo mô tả sơ đồ giao thông trên hành tinh \(X\): Dòng thứ \(i\) chứa hai số nguyên \(u_i, v_i\) cho biết có đoạn đường một chiều đi từ thành phố \(u_i\) đến thành phố \(v_i\) (\(i = 1, 2, \dots, m\)). Các số liên tiếp trên cùng dòng được ghi cách nhau bởi ít nhất một dấu cách.

Output

  • Một số nguyên duy nhất là số lượng thành phố quan trọng.

Constraints

  • \(3 \le n \le 10^4\)
  • \(m \le 10^5\)

Example

Test 1

Input
7 10 1 5
1 2
1 3
2 4
3 4
4 5
5 6
6 2
6 7
7 3
7 5
Output
1

Bình luận

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

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