해킹
면접 대비시간 제한2초메모리 제한1024 MB
네트워크에서 X대를 동시에 해킹할 때 보안 시스템이 도달하기 전까지 얻을 수 있는 최대 금액을 구합니다. 감염되지 않는 컴퓨터가 돈을 벌 수 있으면 -1을 출력합니다.
문제
네트워크 안에는 개의 컴퓨터가 있다. 각 컴퓨터는 번으로 번호가 붙어 있다. 서로 다른 두 컴퓨터 쌍을 잇는 통신망이 개 있다. 번째 통신망은 번 컴퓨터와 번 컴퓨터를 잇는다. 같은 쌍의 두 컴퓨터를 잇는 통신망은 최대 하나이다.
당신은 해커이다. 돈을 얻기 위해 개의 컴퓨터를 동시에 해킹하려고 한다. 번 컴퓨터를 해킹하면 1분 뒤부터 매분 만큼의 돈을 그 컴퓨터에서 가져올 수 있다.
정부는 당신이 해킹하고 0.5분 뒤 번 컴퓨터에 보안 시스템을 설치할 계획이다. 해킹한 컴퓨터에 보안 시스템이 설치되면 그 컴퓨터에서는 더 이상 돈을 가져올 수 없다. 보안 시스템은 통신망을 따라 연쇄적으로 퍼진다. 어떤 컴퓨터에 보안 시스템이 설치되면, 1분 뒤 그 컴퓨터와 통신망으로 직접 연결된 모든 컴퓨터에 보안 시스템이 자동으로 설치된다. 0.5분 뒤 보안 시스템이 설치될 컴퓨터를 해킹하면 그 컴퓨터에서 돈을 가져올 수 없다.
정부의 계획을 알게 된 당신은 보안 시스템을 피해 최대한 많은 돈을 얻으려고 한다. 해킹한 컴퓨터가 모두 보안 시스템 때문에 돈을 얻을 수 없게 되기 전까지 얼마나 많은 돈을 얻을 수 있는지 구하라.
입력
첫 번째 줄에 , , , 가 공백으로 구분되어 주어진다.
두 번째 줄에는 이 공백으로 구분되어 주어진다.
세 번째 줄부터 개의 줄에는 통신망이 주어진다. 번째 줄에는 와 가 공백으로 구분되어 주어진다.
마지막 줄에는 가 공백으로 구분되어 주어진다.
출력
최대로 얻을 수 있는 돈을 출력한다. 무한히 많은 돈을 얻을 수 있다면 대신 을 출력한다.
제한
- ()
- , ()
- 이면 이고 이다.
- ()
- 이면