관광객 페트르
시간 제한2초메모리 제한1024 MB
도시마다 주어진 만족도의 합이 가장 큰 단순 경로를 최대 4개 도시로 찾아, 방문 순서대로 도시 번호를 출력합니다.
문제
베라는 따뜻한 나라로 휴가를 갔다가 배구 선수이자 트랙터 운전사인 페트르를 만났다. 관광객 페트르는 휴가를 마친 뒤 유럽 도시들을 여행할 계획이다. 유럽에는 교통망이 잘 갖춰져 있다. 페트르가 관심을 두는 도시는 개이고, 야간열차 노선은 개이다. 각 노선은 서로 다른 두 도시를 잇고, 이동에는 하룻밤이 걸린다. 열차는 양방향으로 운행한다.
페트르는 여행 전체를 4일 이내로 끝내려 한다. 도시마다 관광에는 정확히 하루를 쓰고, 밤에는 도시 사이를 야간열차로 이동한다. 페트르는 같은 도시를 두 번 이상 방문하지 않는다.
페트르는 각 도시를 방문했을 때 기대되는 기쁨 를 도시마다 미리 평가해 두었다. 기쁨의 합이 가장 큰 여행 경로를 찾아라.
입력
첫 줄에 도시 수와 노선 수를 뜻하는 정수 와 가 주어진다 ().
둘째 줄에는 개의 정수 가 주어진다 (). 는 번 도시를 방문했을 때 기대되는 기쁨이다.
이어지는 개의 줄에는 노선마다 서로 다른 두 정수 와 ()가 주어진다. 이는 노선이 잇는 두 도시의 번호다. 두 도시 사이에 노선은 최대 하나만 있다.
출력
첫 줄에 최적 경로에 포함된 도시의 수 ()를 출력한다. 둘째 줄에는 방문하는 순서대로 도시 번호를 출력한다. 도시 번호는 1부터 시작한다. 최적 경로가 여러 개라면 그중 아무거나 출력해도 된다.