[CNH - TST - 2023] Bài 5: Đếm đường đi

Xem dạng PDF

Gửi bài giải

Điểm: 50,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch, TEXT

Cho đồ thị có hướng không có cạnh nối từ một đỉnh đến chính nó, không có cạnh lặp, có trọng số gồm ~n~ đỉnh và ~m~ cạnh. Gọi ~d~ là độ dài đường đi ngắn nhất từ đỉnh ~1~ tới đỉnh ~n~. Đếm số lượng đường đi từ ~1~ tới ~n~ có độ dài không quá ~d + k~. Vì kết quả có thể rất lớn nên kết quả trả về là số dư của nó với số nguyên ~MOD~.

INPUT

Dòng đầu tiên chứa số nguyên ~T~ (~T > 0~), tương ứng với số lượng test case.

Với mỗi test case được đưa ra:

  • Dòng đầu tiên chứa bốn số nguyên ~n, m, k, MOD~ (~n, m > 0~, ~k ≥ 0~, ~1 ≤ MOD ≤ 10^9~).
  • ~m~ dòng tiếp theo, dòng thứ ~i~ chứa ba số nguyên ~a_i~, ~b_i~, ~c_i~ (~1 ≤ a_i, b_i ≤ n~, ~0 \le c_i \le 10^3~) tương ứng với cạnh nổi từ đinh ~a_i~ đến ~b_i~ có trọng số ~c_i~.
  • Dữ liệu đảm bảo tồn tại ít nhất một đường đi từ ~1~ tới ~n~.

OUTPUT

Với mỗi test case, ghi ra một số nguyên là kết quả trả về với test case đó trên một dòng. Nếu có vô số đường đi thoả mãn, kết quả trả về ~-1~.

SAMPLE INPUT

1
4 4 2 998244353
1 2 1
2 4 1
2 3 2
3 4 1

SAMPLE OUTPUT

2

SUBTASKS

  • ~10 \%~ số điểm có ~T ≤ 5~, ~2n, m ≤ 10~, ~k = 0~, không có cạnh trọng số ~0~.
  • ~30 \%~ số điểm có ~T ≤ 5~, ~2n, m ≤ 2 \times 10^3~, ~k = 0~, không có cạnh trọng số ~0~.
  • ~10 \%~ số điểm có ~T ≤ 5~, ~2n, m ≤ 2 \times 10^3~, ~k \le 50~, không có cạnh trọng số ~0~.
  • ~10 \%~ số điểm có ~T ≤ 5~, ~2n, m ≤ 2 \times 10^3~, ~k \le 50~.
  • ~10 \%~ số điểm có ~T ≤ 5~, ~2n, m ≤ 2 \times 10^5~, ~k = 0~, không có cạnh trọng số ~0~.
  • ~10 \%~ số điểm có ~T ≤ 3~, ~2n, m ≤ 2 \times 10^5~, ~k \le 50~, không có cạnh trọng số ~0~.
  • ~20 \%~ số điểm có ~T ≤ 3~, ~2n, m ≤ 2 \times 10^5~, ~k \le 50~.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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