MONORAIL - Tàu cao tốc
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: admin

n điểm tập trung dân cư đông đúc. Các điểm này được đánh số từ 1 đến n (1 ≤ n ≤ 104). Mạng lưới giao thông công cộng là m đường xe lửa cao tốc một ray, mỗi đường nối một cặp điểm dân cư và chạy một chiều, mỗi đường nối một cặp điểm (0 ≤ m ≤ 105). Mỗi cặp điểm dân cư có không quá một đường tàu mỗi chiều, và n điểm tập trung dân cư cùng nằm trên một vùng liên thông.

Để thuận tiện cho việc đi lại của mọi người và công tác vận hành người ta quyết định, trong trường hợp cần thiết – xây dựng thêm một số ít nhất các tuyến đường mới để đảm bảo từ một điểm bất kỳ có thể đi tới điểm bất kỳ khác bằng tàu cao tốc.

Ví dụ, với n = 5 và hiện có 4 đường: 1 → 2, 2 → 3, 1 → 4 và 4 → 5. Để đảm bảo yêu cầu đã nêu, người ta cần xây dựng ít nhất 2 đường mới, chẳng hạn 5 → 3 và 3 → 1.

Yêu cầu: Cho n, m và các cặp (a, b) mô tả mạng giao thông hiện có. Mỗi cặp (a, b) xác định tồn tại đường tàu a b. Hãy xác định số lượng tối thiểu các đường cần xây dựng thêm.

Dữ liệu vào: 

- Dòng đầu tiên chứa 2 số nguyên nm,

- Mỗi dòng trong m dòng tiếp theo chứa 2 số nguyên ab.

Kết quả ra: Đưa ra một số nguyên là số đường mới cần xây dựng.

Ví dụ

  • input
    5 4
    1 2
    2 3
    1 4
    4 5
    output
    2
Back to Top