CHI PHÍ NHỎ NHẤT

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à \(m\) 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ó \(k\) mệnh giá tiền xu \(c_{1},c_{2},\ \ldots,\ c_{K}\) trong đó luôn có \(2c_{i - 1} \leq c_{i}\ (2 \leq i \leq k)\).

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ả \(n\) 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ả \(n\) thành phố.

Yêu cầu: Cho trước thông tin \(n\) thành phố, \(m\) 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ả \(n\) thành phố.

Dữ liệu:

+ Dòng đầu tiên gồm 3 số nguyên dương \(n,\ m,\ k\ \left( n,\ m,\ k \leq \ 10^{5} \right)\);

+ Dòng thứ 2 gồm \(k\) số nguyên \(c_{1},c_{2},\ \ldots,\ c_{k}\) là các mệnh giá của \(k\) đồng xu;

+ Dòng thứ \(i\) trong \(m\) dòng tiếp theo: ba số nguyên dương đầu tiên \(u_{i},\ v_{i},\ t_{i}\) với \(u_{i},\ v_{i}\) là số hiệu hai thành phố, \(t_{i}\) 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ố \(u_{i}\)\(v_{i}\), \(t_{i}\) 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 \(k\) đồng xu.

Kết quả:

+ 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ụ:

Input Output
3 3 4
1 2 5 10
1 2 2 1 2
1 3 1 3
2 3 1 4
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 và 2, 1 và 3.

Giới hạn:

+ Subtask 1: 30% số test có \(n,m \leq 2000,\ 1 \leq \ c_{i} \leq 1000\).

+ Subtask 2: 30% số test có \(n,m\ \leq \ 10^{5},\ 1\ \leq \ c_{i}\ \leq \ 1000\).

+ Subtask 3: 40% số test có \(n,m\ \leq \ 10^{5},\ 1\ \leq \ c_{i}\ \leq \ 10^{18}\).

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. hungeazy08 (4/26)
  3. tung (2/5)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]