#5443. Viếng thăm đền thờ (TEMPLES)

Bộ nhớ: 512 MiB Thời gian: 1000 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

Vào dịp Tết Nguyên Đán tại vùng đất cổ Đại Việt, người dân có phong tục đi trẩy hội, viếng thăm các ngôi đền thiêng để cầu bình an và tài lộc cho năm mới. Tương truyền rằng, vùng đất này có n ngôi đền linh thiêng, được đánh số từ 1 đến n . Ngôi đền số 1 là Đền Tổ, nơi khởi nguồn của mọi mạch khí.

Mỗi khi một người hành hương đến viếng thăm ngôi đền thứ i , họ sẽ nhận được một lượng "Phúc khí" (may mắn) là c_i . Các ngôi đền được kết nối với nhau bởi m con đường mòn một chiều. Con đường thứ i bắt đầu từ đền u_i , dẫn đến đền v_i và cần w_i ngày để đi hết quãng đường này. Nghĩa là, nếu xuất phát từ đền u_i vào ngày thứ d , người hành hương sẽ đến đền v_i vào ngày thứ d + w_i .

Một vị thiền sư muốn thực hiện chuyến hành hương kéo dài đúng T ngày để tích lũy phúc khí cho bách tính. Kế hoạch cụ thể như sau:

  • Xuất phát từ Đền Tổ (đền số 1 ) vào ngày thứ 0 .

  • Kết thúc hành trình và quay trở lại đúng Đền Tổ vào ngày thứ T .

  • Theo quy tắc tu hành khổ hạnh: "Chân không mỏi, tâm không dừng", vị thiền sư không được phép lưu lại qua đêm hay nghỉ ngơi tại bất kỳ ngôi đền nào. Ngay khi đến một ngôi đền và thắp hương (nhận phúc khí), ông phải lập tức lên đường sang ngôi đền tiếp theo trong cùng ngày hôm đó.

  • Nếu quay lại một ngôi đền nhiều lần, phúc khí vẫn được nhận thêm tương ứng. Phúc khí cũng được tính tại thời điểm xuất phát (ngày 0) và thời điểm kết thúc (ngày T ).

Ngoài ra, các vị thần cai quản các ngôi đền sẽ tổ chức k buổi "Đại Lễ Cầu May" vào các thời điểm đặc biệt. Cụ thể, Đại Lễ lần thứ i diễn ra vào ngày t_i tại ngôi đền x_i . Nếu vị thiền sư có mặt tại đền x_i đúng vào ngày t_i , ngoài lượng phúc khí cơ bản, ông sẽ nhận được thêm y_i lượng phúc khí ban phước từ thần linh.

Là một đệ tử thông tuệ, bạn hãy giúp vị thiền sư tính toán lộ trình sao cho tổng lượng Phúc khí tích lũy được sau chuyến đi là lớn nhất.

Dữ liệu:

  • Dòng đầu tiên chứa bốn số nguyên n, m, T, k (1\le n\le 50 , n\le m\le 500, 1 \le T\le 10^9, 0\le k\le 200) , lần lượt là số lượng ngôi đền, số con đường, tổng thời gian hành hương và số lượng Đại Lễ.

  • Dòng thứ hai chứa n số nguyên c_i (1\le c_i\le 50000) , biểu thị lượng phúc khí nhận được tại mỗi ngôi đền.

  • m dòng tiếp theo, mỗi dòng chứa ba số nguyên u_i, v_i, w_i (1\le u_i, v_i \le n, 1\le w_i\le 5) , mô tả con đường từ đền u_i đến đền v_i mất w_i ngày.

  • k dòng cuối cùng, mỗi dòng chứa ba số nguyên t_i, x_i, y_i (1\le t_i\le T, 1 \le x_i\le n, 1\le y_i\le 10^9) , mô tả Đại Lễ diễn ra vào ngày t_i tại đền x_i với lượng phúc khí thưởng thêm là y_i .

Dữ liệu đảm bảo:

  • Với mọi 1\le i\le m , có u_i \neq v_i . Có thể có nhiều con đường một chiều nối cùng một cặp đền.

  • Từ mỗi ngôi đền luôn có ít nhất một con đường để đi tiếp.

  • Thời gian tổ chức các Đại Lễ t_i là đôi một khác nhau.

Kết quả:

  • Một dòng duy nhất chứa một số nguyên là tổng lượng Phúc khí lớn nhất có thể đạt được.

  • Nếu không thể quay lại Đền Tổ (đền 1) vào đúng ngày thứ T , hãy xuất ra -1.

Ví dụ:

Dữ liệu:

3 4 11 0
1 3 4
1 2 1
2 1 3
2 3 2
3 1 4

Kết quả:

13

Minh họa ví dụ

Giải thích:

  • Một lộ trình tối ưu: Đền 1 (ngày 0) \to Đền 2 (ngày 1) \to Đền 1 (ngày 4) \to Đền 2 (ngày 5) \to Đền 3 (ngày 7) \to Đền 1 (ngày 11). Tổng phúc khí: 1 + 3 + 1 + 3 + 4 + 1 = 13 .

Dữ liệu:

4 8 16 3
3 1 2 4
1 2 1
1 3 1
1 3 2
3 4 3
2 3 2
3 2 1
4 2 1
4 1 5
3 3 5
1 2 5
5 4 20

Kết quả:

39

Giới hạn:

  • Subtask 1 ( 20\% số điểm): n \le 20, m \le 50; T \le 10^5 .

  • Subtask 2 ( 20\% số điểm khác): k = 0 .

  • Subtask 3 ( 20\% số điểm khác): w_i = 1 với mọi i .

  • Subtask 4 ( 20\% số điểm khác): k \le 10 .

  • Subtask 5 ( 20\% số điểm còn lại): Không có ràng buộc bổ sung.