trang chủ / bài tập / fighttraf

Chống kẹt xe

Đề bài

Mô tả

Thị trấn Nsk gồm n giao lộ được nối bởi m con đường hai chiều. Mỗi con đường nối hai giao lộ phân biệt và không có hai con đường nào nối cùng một cặp giao lộ. Từ một giao lộ bất kỳ luôn có thể đi tới mọi giao lộ khác bằng các con đường này. Khoảng cách giữa hai giao lộ được định nghĩa là số con đường ít nhất trên một đường đi nối chúng.

Hội đồng thị trấn quyết định cải thiện hệ thống giao thông bằng cách xây thêm đúng một con đường mới. Tuy nhiên, thị trưởng vừa mua được một chiếc xe hơi mới và rất thích lái xe từ nhà (ở gần giao lộ s) tới chỗ làm (ở gần giao lộ t). Vì thế, ông muốn con đường mới được xây sao cho khoảng cách giữa st không bị giảm đi.

Hãy đếm số cặp giao lộ (u,v) chưa được nối bởi một con đường, sao cho nếu xây thêm con đường nối trực tiếp uv thì khoảng cách giữa st không giảm.

Dữ liệu vào

Dòng đầu tiên chứa bốn số nguyên n, m, st (2n1000, 1m1000, 1s,tn, st) — số giao lộ, số con đường, và chỉ số hai giao lộ tương ứng với nhà và chỗ làm của thị trưởng.

m dòng tiếp theo, mỗi dòng chứa hai số nguyên uivi (1ui,vin, uivi), nghĩa là có một con đường nối trực tiếp hai giao lộ uivi.

Bảo đảm đồ thị liên thông và không có hai con đường nào nối cùng một cặp giao lộ.

Dữ liệu ra

In ra một số nguyên — số cặp giao lộ không kề nhau mà việc xây thêm đường giữa chúng không làm giảm khoảng cách giữa st.

Ví dụ

Input Output Giải thích
5 4 1 5
1 2
2 3
3 4
4 5
0 Đồ thị là đường thẳng 12345, khoảng cách giữa 154. Mọi cặp giao lộ chưa kề nhau khi nối thêm đều rút ngắn khoảng cách.
5 4 3 5
1 2
2 3
3 4
4 5
5 Khoảng cách giữa 35 ban đầu là 2. Có 5 cặp giao lộ mà nối thêm vẫn không giảm khoảng cách này.
5 6 1 5
1 2
1 3
1 4
4 5
3 5
2 5
3 Khoảng cách giữa 152. Có 3 cặp (2,3),(2,4),(3,4) có thể nối thêm mà không làm giảm khoảng cách.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0