dothi4 - Tìm đường đi ngắn nhất
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

Thầy K có sở thích đi du lịch vào cuối tuần. Cứ cuối tuần, thầy K lại chọn đi du lịch từ thành phố S đến thành phố D trong một đất nước. Nhưng, mọi con đường nối liền thành phố này với thành phố khác là con đường một chiều, tức là người ta chỉ có thể di chuyển từ thành phố này sang thành phố khác chứ không phải theo hướng ngược lại. Vì là một nhà thiết kế xây dựng, thầy K muốn thực hiện những điều sau:

1. Chuyển đổi một số lượng nhất định các con đường hiện có sang đường hai chiều

2. Nếu bằng cách thứ 1 không thể tạo ra một con đường từ thành phố S đến thành phố D, thì thầy K phải Xây dựng một con đường mới hoàn toàn nối thành phố S đến thành phố D

 Tổng chi phí cho việc chuyển đổi các con đường một chiều thành các con đường hai chiều, sẽ ít tốn kém hơn so với việc xây dựng một con đường mới. Bây giờ hãy tìm số lượng con đường tối thiểu phải chuyển thành con đường hai chiều, nếu không thể, hãy đưa ra -1

Input

  • Dòng đầu tiên của đầu vào chứa một số nguyên T biểu thị số test
  • Với mỗi test:
  • Dòng đầu tiên của mỗi test bao gồm hai số nguyên N và biểu thị số lượng thành phố và số lượng con đường tương ứng. M dòng tiếp theo, mỗi dòng gồm hai thành A và B, mô tả con đường một chiều nối thành phố A đến thành phố B. Dòng tiếp theo chứa hai số nguyên S và D biểu thị con đường thầy K muốn di chuyển từ thành phố S đến thành phố D .

Output

Với mỗi test, đưa ra số lượng con đường tối thiểu chuyển đổi thành đường hai chiều, để có đường đi từ S đến D. Nếu phải xây dựng con đường mới hoàn toàn, thì đưa ra -1

.Giới hạn:

  • 1 ≤ T ≤ 100
  • 2 ≤ N ≤ 100000
  • 1 ≤ M ≤ 100000
  • 1 ≤ A , B , S , D ≤ N

Ví dụ

Input Output
1

 

7 7

 

1 2

 

2 4

 

1 3

 

5 3

 

5 6

 

6 4

 

7 5

 

1 7

2

1

 

10 9

 

1 2

 

2 4

 

1 3

 

5 3

 

5 6

 

6 4

 

7 5

 

9 10

 

10 8

 

1 10
-1
  • Test số 1:

    Bạn có thể đơn giản thực hiện các con đường hai chiều từ thành phố 5 đến 3 và từ thành phố 7 đến 5. Vì vậy, câu trả lời tối thiểu là 2

    Test số 2: 

    Bạn không thể cải tạo con đường hiện có để tìm ra đường đi từ 1 đến 10. Vì vậy, bạn cần phải xây dựng một con đường mới. Do đó câu trả lời là -1.

     
Back to Top