#84. Dạo công viên (Mã bài: PARK)

Bộ nhớ: 512 MiB Thời gian: 1500 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Tí rất thích đi dạo công viên. Công viên có thể được xem như một đồ thị có hướng gồm N điểm và M cạnh, không có khuyên và cạnh song song. Trong đó, điểm 1 là cổng vào, điểm N là cổng ra. Mỗi cạnh có một trọng số không âm, đại diện cho thời gian Tí cần để đi qua cạnh đó.

Mỗi ngày Tí đều đi dạo công viên, luôn đi vào từ điểm 1 và ra tại điểm N .

Tí thích những điều mới mẻ, không muốn có hai ngày nào đi dạo theo lộ trình hoàn toàn giống nhau. Đồng thời, bạn ấy cũng là một học sinh chăm chỉ, không muốn tốn quá nhiều thời gian cho việc dạo công viên mỗi ngày. Nếu đường đi ngắn nhất từ điểm 1 đến điểm N có độ dài là d , thì Tí chỉ thích những lộ trình có độ dài không quá d + K .

Tí muốn biết tổng cộng có bao nhiêu lộ trình thỏa mãn điều kiện, bạn có thể giúp cậu ấy không?

Để tránh kết quả quá lớn, hãy đưa ra đáp án sau khi chia lấy dư cho P . Nếu có vô số lộ trình hợp lệ, hãy xuất ra -1.

Dữ liệu:

  • Dòng đầu tiên chứa một số nguyên T (3\le T \le 5) , đại diện cho số lượng bộ dữ liệu.
  • Tiếp theo là T bộ dữ liệu, với mỗi bộ:
    • Dòng đầu tiên chứa bốn số nguyên N, M, K, P (1\le N \le 10^5, 1\le M \le 2 \cdot 10^5, 0\le K\le 50, 1\le P\le 10^9) .

    • M dòng tiếp theo, mỗi dòng chứa ba số nguyên a_i, b_i, c_i (1 \le a_i, b_i \le N, 0 \le c_i \le 1000) , đại diện cho một cạnh có hướng từ điểm a_i đến b_i với trọng số c_i .

    • Dữ liệu đảm bảo: tồn tại ít nhất một lộ trình hợp lệ.

Kết quả: Xuất ra T dòng, mỗi dòng một số nguyên là đáp án.

Ví dụ:

Dữ liệu:

2
5 7 2 10
1 2 1
2 4 0
4 5 2
2 3 2
3 4 1
3 5 2
1 5 3
2 2 0 10
1 2 0
2 1 0

Kết quả:

3
-1

Giới hạn:

  • Subtask #1: 30\% số điểm có k=0, c_i > 0, \forall i .
  • Subtask #2: 30\% số điểm khác có N\le 1000, M\le 2000, c_i > 0,\forall i .
  • Subtask #3: 10\% số điểm khác có N\le 1000, M\le 2000 .
  • Subtask #4: 10\% số điểm khác đồ có c_i > 0, \forall i .
  • Subtask #5: 20\% số điểm còn lại không có ràng buộc bổ sung.