#894. MINCOST - Chi phí nhỏ nhất

Bộ nhớ: 256 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

Sau khi giải được bài toán Dãy con tăng trọng số, Steve nhận được phần thưởng là một chuyến du lịch tới một đất nước Alpha vô cùng xinh đẹp. Đất nước này gồm có N thành phố và 𝑀 con đường hai chiều kết nối các thành phố với nhau. Điều kì lạ ở đất nước này là nếu Steve muốn đi qua một con đường nào đó, cậu phải đưa ra cho người quản lí con đường đó xem một số đồng xu với đủ mệnh giá khác nhau. Lưu ý rằng Steve chỉ cần cho họ xem những đồng xu đó thôi nên mỗi đồng xu có thể được sử dụng lại ở nhiều con đường khác nhau. Đương nhiên, trước đó cậu sẽ phải đổi tiền của mình lấy những đồng xu của đất nước này rồi, mệnh giá tiền xu ở đây cũng rất đặc biệt: có 𝐾 mệnh giá tiền xu 𝑐_1, 𝑐_2, … , 𝑐_𝐾 trong đó luôn có 2\times 𝑐_{𝑖−1} ≤ 𝑐_𝑖\ (2 ≤ 𝑖 ≤ 𝐾) . Steve muốn xuất phát tại một thành phố bất kì và đi thăm thú tất cả 𝑁 thành phố của đất nước Alpha nhưng cũng không muốn phải đổi quá nhiều tiền, nên cần tính toán tổng mệnh giá các đồng xu phải đổi nhỏ nhất để dù xuất phát ở thành phố nào cũng có thể đi thăm tất cả 𝑁 thành phố.

Yêu cầu: Cho trước thông tin 𝑁 thành phố, 𝑀 con đường và mệnh giá các đồng xu cần có để đi qua từng con đường. Hãy giúp Steve xác định tổng mệnh giá các đồng xu phải đổi nhỏ nhất để Steve có thể đi thăm tất cả 𝑁 thành phố.

Dữ liệu:

  • Dòng đầu tiên gồm ba số nguyên dương 𝑁, 𝑀, 𝐾\ (𝑁, 𝑀, 𝐾 ≤ 10^5) ;
  • Dòng thứ hai gồm 𝐾 số nguyên 𝑐_1, 𝑐_2, … , 𝑐_𝐾 là các mệnh giá của 𝐾 đồng xu;
  • Dòng thứ 𝑖 trong 𝑀 dòng tiếp theo: ba số nguyên dương đầu tiên 𝑢_𝑖, 𝑣_𝑖, 𝑡_𝑖 với 𝑢_𝑖, 𝑣_𝑖 là số hiệu hai thành phố, 𝑡_𝑖 là số lượng đồng xu mà Steve phải đưa cho người quản lí xem khi đi qua con đường nối giữa thành phố 𝑢_𝑖 𝑣_𝑖 , 𝑡_𝑖 số tiếp theo là các số nguyên dương biểu diễn thứ tự của các đồng xu trong dãy 𝐾 đồng xu.

Kết quả:

  • Đưa ra một dòng ghi một số nguyên duy nhất là đáp án bài toán. Nếu không tồn tại cách đổi tiền thỏa mãn, in ra -1 .

Ví dụ:

Dữ liệu:

3 3 4
1 2 5 10
1 2 2 1 2
1 3 1 3
2 3 1 4

Kết quả:

8

Giải thích:

  • Chọn các đồng xu thứ 1, 2, 3 có tổng mệnh giá là 1 + 2 + 5 = 8 , ta có thể thăm tất cả 3 thành phố bằng cách đi qua các con đường nối thành phố 1 2 , 1 3 .

Giới hạn:

  • Subtask \#1: 30\% số test có 𝑁, 𝑀 ≤ 2000, 1 ≤ 𝑐_𝑖 ≤ 1000 ;
  • Subtask \#2: 30\% số test có 𝑁, 𝑀 ≤ 10^5, 1 ≤ 𝑐_𝑖 ≤ 1000 ;
  • Subtask \#3: 40\% số test có 𝑁, 𝑀 ≤ 10^5, 1 ≤ 𝑐_𝑖 ≤ 10^{18} .