Cứu hộ (DHBB 2023)

Xem PDF

Nộp bài

Điểm: 1500 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 256M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Vũ trụ Zn hành tinh, các hành tỉnh được đánh số từ 1 đến n. Một hệ thống gồm m đường dịch chuyển, đường dịch chuyền thứ k\ (1\le k\le m) sẽ giúp di chuyền từ hành tỉnh i_k đến hành tinh j_k và mất chi phí là e(i_k,j_k). Một vụ nổ trong vũ trụ đã làm ảnh hưởng lớn đến tất cả các hành tinh, trừ hành tinh số 1. Hành tinh số 1 lên kế hoạch cứu hộ cho n-1 hành tinh còn lại.

Các nhà khoa học ở hành tinh số 1 đã tìm ra cách di chuyển giúp đội cứu hộ có thể di chuyển đến một hành tinh khác với chi phí nhỏ hơn. Cụ thể, với số nguyên không âm a mà các nhà khoa học thiết đặt, giả sử đội cứu hộ lần lượt di chuyển qua dãy gồm p hành tinh 1=x_1,x_2,\dots,x_p. Như vậy, đội cứu hộ sẽ phải sử dụng p-1 đường dịch chuyển, gọi s_1 là tổng chi phí của p-1 đường dịch chuyển, gọi r_1 là tổng chi phí của a đường dịch chuyền có chi phí lớn nhất trong p-1 đường dịch chuyển (nếu a>p-1 thì tính tổng chi phí của p-1 đường dịch chuyển), khi đó đội cứu hộ sẽ mất chi phí là s_1-r_1.

Về phía các hành tinh, các nhà khoa học cũng đã tính toán ra số nguyên không âm b dựa trên mức độ ảnh hưởng của vụ nồ để xác định được chi phí di chuyển của cư dân. Cụ thể, nếu cư dân hành tinh i phải di chuyển qua dãy gồm q hành tinh i=y_1,y_2,\dots,y_q, gọi s_2 là tổng chi phí của q-1 đường dịch chuyển, gọi r_2 là tổng chi phí của b đường dịch chuyển có chi phí nhỏ nhất trong q-1 đường dịch chuyển (nếu b>q-1 thì tính tổng chi phí của q-1 đường dịch chuyển), khi đó cư dân sẽ mất chi phí là s_2+r_2.

Chi phí để đội cứu hộ gặp được cư dân của hành tinh i là tổng chi phí di chuyền của đội cứu hộ cộng với tổng chi phí của cư dân hành tinh i di chuyển đề họ gặp được nhau.

Yêu cầu: Với mỗi hành tinh i\ (2\le i\le n), hãy tính chi phí nhỏ nhất để đội cứu hộ xuất phát từ hành tinh 1 có thể gặp cư dân của hành tỉnh i.

Input, Output và Subtasks

Input

Vào từ thiết bị vào chuẩn (bàn phím) có khuôn dạng:

  • Dòng đầu chứa bốn số n,m,a,b;
  • Dòng thứ k\ (1\le k\le m) trong m dòng tiếp theo chứa ba số nguyên dương i_k,j_k,e(i_k,j_k), trong đó 1\le i_k\ne j_k\le ne(i_k,j_k)\le 10^9. Dữ liệu đảm bảo từ hành tinh i không có quá một đường dịch chuyển tới j và không tới chính nó.
Output

Ghi ra thiết bị ra chuẩn (màn hình) gồm một dòng chứa n-1, số thứ i số là chi phí nhỏ nhất để đội cứu hộ có thể gặp cư dân của hành tinh i+1, nếu đội cứu hộ không thể gặp được cư dân thì đưa ra số -1 tương ứng.

Scoring
  • Subtask 1 (25 điểm): n\le 100,m\le 1000,a=b=0
  • Subtask 2 (25 điểm): n\le 100,m\le 1000,a=b=1
  • Subtask 3 (25 điểm): n\le 10^5,m\le 10^5,a=b=0
  • Subtask 4 (25 điểm): n\le 10^5,m\le 10^5,0\le a,b\le 3

Sample

Input
4 4 1 1
1 2 1
2 3 2
3 4 3
4 2 1
Output
0 1 2
Note


Bình luận

Không có bình luận nào.