정복
시간 제한4초메모리 제한1024 MB
1번 섬에서 시작해 인접한 섬 중 군대가 더 작은 섬을 흡수하며 병력을 합칠 때, 얻을 수 있는 최대 병력 총합을 구한다.
문제
큰 바다 위의 섬들에는 유목민, 왕국, 부족이 살고 있다. 섬들 사이에는 다리가 놓여 있어 서로 오갈 수 있다. 어떤 섬에서든 다리를 여러 번 건너면 다른 모든 섬에 도달할 수 있다. 섬들은 평화로웠지만, Spanning Nation이 공격해 오면서 모든 것이 바뀌었다.
처음에 Spanning Nation은 1번 섬을 점령하고 있다. 그때부터 Spanning Nation은 이미 정복한 섬과 다리로 직접 연결된 섬을 공격할 수 있다. 다행히 전쟁은 실제로 싸우지 않고 끝난다. Spanning Nation은 섬의 군대가 Spanning Nation의 군대보다 엄격히 작을 때만 그 섬을 공격한다. 군대가 더 작은 섬은 그냥 항복하고 Spanning Nation의 군대에 합류한다.
Spanning Nation의 전략 고문으로서, 일련의 공격을 한 뒤 Spanning Nation이 가질 수 있는 최대 군대 규모를 구하라.
입력
첫째 줄에는 섬의 수 ()과 다리의 수 ()이 주어진다.
다음 개의 줄에는 다리의 정보가 주어진다. 각 줄에는 서로 다른 두 정수 와 ()가 주어지며, 이는 섬 와 섬 사이에 다리가 있음을 뜻한다. 어떤 두 섬 사이에도 다리는 최대 하나만 존재한다.
다음 개의 줄에는 섬의 군대 규모가 순서대로 주어진다. 각 줄에는 정수 ()가 하나씩 주어지며, 이는 해당 섬의 군대 규모이다.
출력
Spanning Nation이 가질 수 있는 최대 군대 규모를 출력한다.