Chuyến Phượt Qua Nhiều Điểm Dừng Nhất

Xem dưới dạng PDF

Gửi bài giải


Điểm: 20
Giới hạn thời gian: 1.5s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

An và Bình đang lên kế hoạch cho một chuyến đi phượt xuyên Việt. Có tổng cộng \(N\) điểm dừng chân được đánh số từ \(1\) đến \(N\) (mỗi điểm là một thành phố, di tích, hay trạm nghỉ). Giữa các điểm dừng có \(M\) con đường một chiều: con đường \(u \to v\) nghĩa là An có thể đi từ điểm \(u\) đến điểm \(v\).

Do hành trình có thứ tự thời gian rất rõ ràng (đi từ Bắc vào Nam hoặc ngược lại, không quay lại), bản đồ chuyến đi đảm bảo không có vòng khép kín.

An bắt đầu từ điểm xuất phát \(S\) và muốn đến điểm kết thúc \(T\). Vì anh rất thích khám phá, anh ấy muốn đi qua nhiều điểm dừng nhất có thể (mỗi con đường dùng tối đa một lần, mỗi điểm chỉ đến một lần). Hỏi số điểm dừng tối đa mà An có thể ghé thăm trên đường đi từ \(S\) đến \(T\) là bao nhiêu? (Tính cả điểm xuất phát \(S\) và điểm kết thúc \(T\).)

Định dạng đầu vào

  • Dòng đầu chứa hai số nguyên \(N\) và \(M\) (\(1 \le N \le 10^5\), \(0 \le M \le 2 \cdot 10^5\)).
  • \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) mô tả đường đi một chiều từ \(u\) đến \(v\) (\(1 \le u, v \le N\), \(u \ne v\)).
  • Dòng cuối cùng chứa hai số nguyên \(S\) và \(T\) (\(1 \le S, T \le N\)).
  • Đảm bảo: có ít nhất một đường đi từ \(S\) đến \(T\).

Định dạng đầu ra

  • Một số nguyên duy nhất là số điểm dừng tối đa trên đường đi từ \(S\) đến \(T\), bao gồm cả \(S\) và \(T\).

Ví dụ

Input:

6 5
1 2
1 3
2 4
3 5
5 6
1 6

Output:

5

Giải thích: Đường đi \(1 \to 3 \to 5 \to 6\) chỉ qua 4 điểm. Đường đi \(1 \to 2 \to 4\) (dừng lại) mới ghé được đúng 3 điểm nhưng không đến được \(T = 6\). Đường đi hợp lệ tốt nhất là \(1 \to 3 \to 5 \to 6\) cũng 4 điểm — không thể thêm điểm nào vì không có đường quay lại từ \(4\) đến \(5\). Vậy đáp số là \(4\). (Xem chú thích dưới ràng buộc.)

Ràng buộc

  • \(1 \le N \le 10^5\)
  • \(0 \le M \le 2 \cdot 10^5\)
  • Bản đồ luôn đảm bảo không tạo vòng khép kín.
  • Đảm bảo có ít nhất một đường đi từ \(S\) đến \(T\).

Chú thích cho ví dụ: Bản đồ có \(M = 5\) đường như đã cho; đường đi hợp lệ từ \(1\) đến \(6\) qua \(5\) điểm là \(1 \to 2 \to 4\) (vì đứng tại \(4\) không đi tiếp) hoặc \(1 \to 3 \to 5 \to 6\) qua \(4\) điểm. Đường dài nhất hợp lệ từ \(1\) đến \(6\) là \(1 \to 3 \to 5 \to 6\) với 4 điểm. Hãy sử dụng đầu vào của riêng bạn.


Nhận xét

Không có ý kiến tại thời điểm này.