만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

관광객 페트르

시간 제한2초메모리 제한1024 MB

요약
도시마다 주어진 만족도의 합이 가장 큰 단순 경로를 최대 4개 도시로 찾아, 방문 순서대로 도시 번호를 출력합니다.
난이도

보통10점 중 5점

유형
그래프, 완전 탐색, 정렬
정답자
아직 제출이 없습니다

문제

베라는 따뜻한 나라로 휴가를 갔다가 배구 선수이자 트랙터 운전사인 페트르를 만났다. 관광객 페트르는 휴가를 마친 뒤 유럽 도시들을 여행할 계획이다. 유럽에는 교통망이 잘 갖춰져 있다. 페트르가 관심을 두는 도시는 VV개이고, 야간열차 노선은 EE개이다. 각 노선은 서로 다른 두 도시를 잇고, 이동에는 하룻밤이 걸린다. 열차는 양방향으로 운행한다.

페트르는 여행 전체를 4일 이내로 끝내려 한다. 도시마다 관광에는 정확히 하루를 쓰고, 밤에는 도시 사이를 야간열차로 이동한다. 페트르는 같은 도시를 두 번 이상 방문하지 않는다.

페트르는 각 도시를 방문했을 때 기대되는 기쁨 pip_i를 도시마다 미리 평가해 두었다. 기쁨의 합이 가장 큰 여행 경로를 찾아라.

입력

첫 줄에 도시 수와 노선 수를 뜻하는 정수 VV와 EE가 주어진다 (1≤V,E≤3×1051 \le V, E \le 3 \times 10^5).

둘째 줄에는 VV개의 정수 p1,p2,…,pVp_1, p_2, \ldots, p_V가 주어진다 (1≤pi≤1081 \le p_i \le 10^8). pip_i는 ii번 도시를 방문했을 때 기대되는 기쁨이다.

이어지는 EE개의 줄에는 노선마다 서로 다른 두 정수 aia_i와 bib_i (1≤ai,bi≤V1 \le a_i, b_i \le V)가 주어진다. 이는 노선이 잇는 두 도시의 번호다. 두 도시 사이에 노선은 최대 하나만 있다.

출력

첫 줄에 최적 경로에 포함된 도시의 수 KK (1≤K≤41 \le K \le 4)를 출력한다. 둘째 줄에는 방문하는 순서대로 도시 번호를 출력한다. 도시 번호는 1부터 시작한다. 최적 경로가 여러 개라면 그중 아무거나 출력해도 된다.

예제2

  1. 예제 1

    입력
    5 4
    4 2 3 1 5
    1 2
    2 3
    3 4
    4 5
    
    예상 출력
    4
    2 3 4 5
    
  2. 예제 2

    입력
    4 3
    1 2 3 4
    1 2
    1 3
    1 4
    
    예상 출력
    3
    4 1 3