아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

할로윈의 양아치

면접 대비

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

요약
친구 관계 그래프에서 연결 요소를 이루는 아이들의 사탕을 빼앗되, 울게 되는 아이 수가 K 미만이 되도록 골라 사탕 합의 최댓값을 구한다.
난이도

보통10점 중 6점

유형
그래프, 유니온 파인드, 동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

Trick or Treat!!

10월 31일 할로윈 밤에는 거리 곳곳에서 아이들이 친구와 모여 사탕을 받으러 돌아다닌다. 올해 할로윈에도 많은 아이가 즐겁게 보냈지만, 일찍 잠에 빠진 스브러스만은 할로윈 밤을 즐길 수 없었다. 뒤늦게 일어나 사탕을 얻으려 혼자 돌아다녀 보지만 사탕은 이미 바닥나 하나도 얻지 못했다.

단단히 화가 난 스브러스는 거리를 돌아다니며 다른 아이들의 사탕을 빼앗기로 마음먹는다. 다른 아이들보다 몸집이 큰 스브러스에게 사탕을 빼앗는 일은 어렵지 않다. 스브러스는 매우 공평한 사람이라 한 아이의 사탕을 빼앗으면 그 아이 친구들의 사탕도 모조리 빼앗아버린다. (친구의 친구는 친구다?!)

사탕을 빼앗긴 아이들은 거리에 주저앉아 울고, KK명 이상의 아이가 울기 시작하면 울음소리가 공명해 온 집의 어른들이 거리로 나온다. 스브러스가 어른들에게 들키지 않고 최대로 빼앗을 수 있는 사탕의 양을 구하여라.

스브러스는 혼자 모든 집을 돌아다녔기 때문에 다른 아이들이 받은 사탕의 양을 모두 알고 있다. 모든 아이는 스브러스를 피해 갈 수 없다.

입력

첫째 줄에 정수 NN, MM, KK가 주어진다. NN은 거리에 있는 아이들의 수, MM은 아이들의 친구 관계 수, KK는 울음소리가 공명하기 위한 최소 아이의 수이다. (1≤N≤30 0001 \leq N \leq 30\ 000, 0≤M≤100 0000 \leq M \leq 100\ 000, 1≤K≤min⁡{N,3 000}1 \leq K \leq \min\left\{N, 3\ 000\right\})

둘째 줄에는 아이들이 받은 사탕의 수를 나타내는 정수 c1,c2,⋯ ,cNc_1, c_2, \cdots, c_N이 주어진다. (1≤ci≤10 0001 \leq c_i \leq 10\ 000)

셋째 줄부터 MM개 줄에 걸쳐 각각의 줄에 정수 aa, bb가 주어진다. 이는 aa와 bb가 친구임을 의미한다. 같은 친구 관계가 두 번 주어지는 경우는 없다. (1≤a,b≤N1 \leq a, b \leq N, a≠ba \neq b)

출력

스브러스가 어른들에게 들키지 않고 아이들로부터 빼앗을 수 있는 최대 사탕의 수를 출력한다.

예제2

  1. 예제 1

    입력
    10 6 6
    9 15 4 4 1 5 19 14 20 5
    1 3
    2 5
    4 9
    6 2
    7 8
    6 10
    
    예상 출력
    57
    
  2. 예제 2

    입력
    5 4 4
    9 9 9 9 9
    1 2
    2 3
    3 4
    4 5
    
    예상 출력
    0