전력공급
시간 제한1초메모리 제한512 MB
건물의 부분집합을 골라 그 잉여 전력에서 집합 밖으로 나가는 송전량을 뺀 값을 최대로 만든다. 최대 폐쇄 부분그래프 문제로, 최소 컷으로 푼다. 건물을 잉여가 양수인 쪽과 음수인 쪽으로 나누고, 간선 비용을 흐름으로 모델링한다. 각 테스트마다 최대 유량을 계산해 답을 구한다.
문제
Bob이 살고 있는 Alberta 도시에는 개의 건물이 있고 번부터 번까지 번호가 붙어있다. 각 건물은 일정량의 전기를 생산하고 소비한다. 는 번째 빌딩의 전력 생산량에서 소비량을 뺀 값으로 해당 빌딩의 "잉여 전력"을 나타낸다. 만약 건물의 소비량이 생산량보다 크다면 값은 음수가 된다. 가 0인 경우는 없고, 항상 정수이다.
일부 건물은 서로 전선으로 연결되어 있어서 한 건물에서 생산한 전력의 일부를 다른 건물에 보내주기도 한다. 현재 전선은 총 개가 있고 번부터 번까지 번호가 붙어있다. 번째 전선은 건물 에서 건물 로 만큼의 전력을 공급해 준다. 각 전선은 방향성이 있고, 두 건물 사이에는 같은 방향의 전선은 최대 한 개만 있을 수 있다.
전기가 매우 중요한 자원이 되었기 때문에 Bob은 개의 건물 중 일부 건물을 사들여 이 건물들의 잉여 전력 총량이 최대가 되도록 하고 싶다. 구체적으로, 가 의 부분집합일 때, 즉, Bob이 에 속한 건물들을 사기로 했을 때, 의 잉여 전력 총량인 는 아래와 같이 정의 된다.
- (에 속한 건물들의 잉여 전력 총합) - (에 속한 건물들이 에 속하지 않은 건물들에 전선을 통해 공급하는 전력의 총합)
예를 들어 , , , , , , , , , , 이라 하자.
- 건물 은 자체 전력 생산량이 소비량보다 커서 잉여 전력이 이며 다른 두 건물은 잉여 전력이 음수이다.
- 번 전선은 건물 에서 건물 로 만큼의 전력을 공급한다.
- 번 전선은 건물 에서 건물 으로 만큼의 전력을 공급한다.
이 예제에서 Bob이 건물을 살 방법은 총 가지가 있는데, 각 경우에 대한 잉여 전력 총량은 아래와 같다.
- 가 공집합인 경우: .
- 인 경우: .
- 인 경우: .
- 인 경우: .
- 인 경우: . 이 경우, 번 전선의 경우 건물 에서 건물 로 전력을 공급하지만 두 건물 모두 사들인다면 위 정의에 따라 를 계산할 때 고려하지 않는다.
- 인 경우: .
- 인 경우: .
- 인 경우: .
가지 방법 중 잉여 전력 총량이 최대가 되는 경우는 인 경우이다.
다른 예로, , , , , , , 이라 하자.
- 가 공집합인 경우: .
- 인 경우: .
- 인 경우: .
- 인 경우: .
총 가지 방법 중 잉여 전력 총량이 최대가 되는 경우는 또는 가 공집합인 경우이다.
입력으로 , , , , , 가 주어졌을 때, Bob이 달성할 수 있는 최대 잉여 전력 총량을 구해보자.
입력
첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스의 첫 줄에는 과 이 공백으로 구분되어 주어진다.
둘째 줄에는 각 건물의 잉여 전력량 이 공백으로 구분되어 주어진다.
다음 줄에 걸쳐 각 줄에 세 개의 정수 , , 주어진다. 이는 건물 에서 건물 로 만큼의 전력이 공급되고 있음을 나타낸다.
출력
각 테스트 케이스의 정답인 Bob이 달성할 수 있는 최대 잉여 전력량을 각 줄에 출력한다.
제한
- 인 모든 에 대하여 이고 .
- 인 모든 에 대하여 이고 , 그리고 .
- 인 모든 , 에 대하여 이고 동시에 인 경우는 없다. 즉, 모든 전선은 방향을 고려했을 때 고유하다.