익웜 바이러스

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

요약
각 PC마다 다른 감염 비용이 주어질 때, 최대 K개의 PC를 직접 감염시켜 가중 간선을 따라 바이러스가 퍼지며 모든 PC를 감염시키는 최소 총비용을 구한다.
난이도

어려움10점 중 8점

유형
그래프, 최소 신장 트리, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

영과일 조직의 해커 오익준은 새로 개발한 바이러스 'IK-WARM'을 PC에 전송하여 감염시킨 후, 바이러스들이 네트워크상에 모두 퍼지길 원한다.

네트워크에는 NN개의 PC가 있고, PC간 데이터를 보내는 데까지 걸리는 고유한 시간이 포함된 MM개의 네트워크 간선으로 이루어진 양방향 그래프이다. 데이터를 송수신하는 두 PC는 서로 다르며, 두 대간 직접 연결되어 있는 데이터 전송 경로는 최대 한 개이다.

바이러스에 감염된 PC는 인접한 네트워크 간선을 통해 바이러스가 포함된 데이터를 전송할 수 있고, 바이러스가 포함된 데이터를 받은 PC는 즉시 감염된다.

익준이는 최대 KK번 서로 다른 PC를 해킹하여 바이러스가 포함된 데이터를 직접 전송할 수 있으며, ii번 PC에 데이터를 보내는 데 걸리는 시간은 a_ia\_i이다.

수열 aa와 네트워크 정보가 주어졌을 때, 감염된 PC가 없는 상태의 네트워크가 모두 감염되는 데 필요한 총 전송 시간의 최솟값을 구하라. 여기서 총 전송 시간이란 각 PC에 데이터를 보내는 데 걸린 시간을 모두 더한 값이다.

입력

첫 번째 줄에 PC의 수 NN, PC간 간선의 개수 MM 그리고 PC에 직접 전송할 수 있는 횟수 KK가 주어진다. (1≤N≤1,000; 0≤M≤min⁡(N(N−1)2, 100,000); 1≤K≤N)(1 \leq N \leq 1\\,000;\ 0 \leq M \leq \min(\frac{N(N-1)}{2},\ 100\\,000) ;\ 1 \leq K \leq N)

두 번째 줄에 바이러스가 포함된 데이터를 보내는 데 걸리는 시간인 정수 a_ia\_i가 공백을 사이에 두고 NN개 주어진다. (1≤a_i≤100,000; 1≤i≤N)(1 \leq a\_i \leq 100\\,000;\ 1 \leq i \leq N)

다음 MM개의 줄에는 각 네트워크 간선에 대한 정보를 나타내는 세 정수 X, Y, ZX,\ Y,\ Z가 공백을 사이에 두고 주어진다. 이는 XX번 PC와 YY번 PC간 데이터를 보내는 데 걸리는 시간 ZZ인 간선으로 연결되어 있다는 의미이다. (1≤X,Y≤N; 1≤Z≤100,000)(1 \leq X, Y \leq N;\ 1 \leq Z \leq 100\\,000)

출력

첫 번째 줄에 네트워크의 모든 PC가 감염되는 데 필요한 총 전송 시간의 최솟값을 출력한다. 단, 바이러스가 네트워크상에 모두 퍼질 수 없다면 -1을 출력한다.

예제2

  1. 예제 1

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

    입력
    5 3 1
    3 2 5 7 1
    1 2 3
    3 2 8
    4 5 4
    
    예상 출력
    -1