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

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

그래프 파괴하기

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

요약
방향 그래프의 모든 간선을 지우기 위해 각 정점에서 들어오는 간선 또는 나가는 간선을 제거하는 비용의 최솟값을 구합니다.
난이도

어려움10점 중 8점

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

문제

앨리스와 밥이 다음 게임을 한다. 먼저 앨리스가 정점 NN개와 방향 간선(호) MM개로 이루어진 방향 그래프를 그린다. 그다음 밥은 그래프의 모든 간선을 없애려고 한다. 한 번의 행동에서 밥은 임의의 정점 하나를 골라, 그 정점으로 들어오는 모든 간선을 없애거나, 그 정점에서 나가는 모든 간선을 없앨 수 있다.

앨리스는 각 정점 ii에 두 개의 비용 Wi+W_i^{+}와 Wi−W_i^{-}를 매긴다. 밥이 정점 ii로 들어오는 모든 간선을 없애면 앨리스에게 Wi+W_i^{+}달러를 내고, 정점 ii에서 나가는 모든 간선을 없애면 Wi−W_i^{-}달러를 낸다. 밥이 그래프의 모든 간선을 없애기 위해 지불해야 하는 최소 금액을 구하라.

입력

첫째 줄에 두 정수 NN과 MM이 주어진다 (1≤N≤1001 \le N \le 100, 1≤M≤50001 \le M \le 5000). 둘째 줄에는 NN개의 정수 W1+,…,WN+W_1^{+}, \dots, W_N^{+}가 주어진다. 셋째 줄에는 같은 방식으로 W1−,…,WN−W_1^{-}, \dots, W_N^{-}가 주어진다. 모든 비용은 양의 정수이며 10610^6을 넘지 않는다. 이어지는 MM개의 줄에는 각각 두 정수 aa와 bb가 주어지며, 정점 aa에서 정점 bb로 향하는 간선을 나타낸다. 그래프에는 자기 자신으로 향하는 간선(루프)이나 같은 두 정점을 잇는 평행 간선이 있을 수 있다.

출력

밥이 그래프의 모든 간선을 없애기 위해 지불해야 하는 최소 금액 WW를 한 줄에 출력한다.

예제4

  1. 예제 1

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

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

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

    입력
    2 1
    10 7
    4 9
    1 2
    
    예상 출력
    4