Một bưu tá ở vùng quê cần chuyển thư cho người dân ở các ngôi làng cũng
như ở trên các con đường nối giữa các ngôi làng. Bạn cần giúp bưu tá tìm
hành trình đi qua mỗi ngôi làng và mỗi con đường ít nhất một lần (dữ
liệu vào đảm bảo một hành trình như vậy tồn tại). Tuy nhiên, mỗi hành
trình còn được gắn với một chi phí. Người dân ở các ngôi làng đều muốn
bưu tá đến làng mình càng sớm càng tốt. Vì vậy mỗi ngôi làng đã thỏa
thuận với bưu điện, nếu làng
Có
Yêu cầu: Viết chương trình xác định một hành trình đi qua mỗi ngôi làng và mỗi con đường ít nhất một lần, sao cho tổng lợi nhuận của bưu điện là lớn nhất (hay tổng thiệt hại là bé nhất).
Input
- Dòng đầu tiên chứa 2 số nguyên
, , cách nhau bởi khoảng trắng; ( ), là số ngôi làng và là số con đường. - Mỗi dòng trong số
dòng sau chứa một số nguyên dương. Dòng thứ chứa số , , xác định chi phí được trả bởi làng . - Mỗi dòng trong số
dòng sau chứa hai số nguyên dương cách nhau bởi khoảng trắng, mô tả một con đường nối hai ngôi làng.
Output
- Dòng đầu tiên chứa số nguyên dương
, độ dài của hành trình. - Dòng thứ hai theo chứa
số cho biết các ngôi làng được thăm theo thứ tự trên hành trình, cách nhau bởi khoảng trắng, trong đó = = 1.
Sample Input
6 7
1
7
4
10
20
5
2 4
1 5
2 1
4 5
3 6
1 6
1 3
Sample Output
7
1 6 3 1 5 4 2 1
Bình luận
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.