trang chủ / đề bài / destroads

Phá hủy đường

Đề bài

Mô tả

Một đất nước có đúng n thành phố, đánh số từ 1 đến n, và m con đường hai chiều nối các thành phố. Nếu hai thành phố a và b được nối bởi một con đường thì ta có thể đi từ a sang b hoặc từ b sang a trong đúng 1 giờ. Mạng lưới đường ban đầu liên thông: từ thành phố bất kỳ đều đi được tới mọi thành phố khác.

Bạn muốn phá hủy càng nhiều con đường càng tốt, nhưng những con đường còn lại vẫn phải thỏa mãn đồng thời hai điều kiện:

  • đi được từ s1 tới t1 trong không quá l1 giờ;
  • đi được từ s2 tới t2 trong không quá l2 giờ.

Hãy xác định số con đường nhiều nhất có thể phá hủy. Nếu không thể đạt được cả hai điều kiện, in ra −1.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m: số thành phố và số con đường.
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên ai, bi mô tả con đường nối hai thành phố ai và bi.
  • Dòng tiếp theo chứa ba số nguyên s1, t1, l1.
  • Dòng cuối chứa ba số nguyên s2, t2, l2.

Dữ liệu ra

Một số nguyên duy nhất: số con đường nhiều nhất có thể phá hủy, hoặc −1 nếu không tồn tại phương án nào.

Ràng buộc

  • 1≤n≤3000
  • 0≤m≤min(3000,n(n−1)2)
  • 1≤ai,bi≤n và ai≠bi
  • Mỗi cặp thành phố được nối bởi nhiều nhất một con đường
  • Mạng lưới đường ban đầu liên thông
  • 1≤si,ti≤n và 0≤li≤n

Ví dụ

Input Output Giải thích
5 4
1 2
2 3
3 4
4 5
1 3 2
3 5 2
0 Mạng lưới là đường thẳng 1−2−3−4−5. Hành trình 1→3 cần hai đường 1−2, 2−3; hành trình 3→5 cần hai đường 3−4, 4−5. Cả 4 con đường đều phải giữ lại.
5 4
1 2
2 3
3 4
4 5
1 3 2
2 4 2
1 Hai hành trình 1→3 và 2→4 dùng chung con đường 2−3, nên chỉ cần giữ ba con đường 1−2, 2−3, 3−4. Phá được con đường 4−5.
5 4
1 2
2 3
3 4
4 5
1 3 2
3 5 1
-1 Đi từ 3 tới 5 luôn mất ít nhất 2 giờ, vượt quá l2=1 ngay cả khi giữ nguyên toàn bộ mạng lưới.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0