택배 기사
시간 제한1초메모리 제한1024 MB
직선 도로 위 도시들에 마감 시각이 있는 소포를 늦지 않게 배달하고 창고로 돌아오는 최소 시간을 구하거나 불가능하면 -1을 출력한다.
문제
크리스마스가 다가오면서, 비트란디아의 택배 회사 Bitzon은 평소보다 훨씬 많은 일을 처리해야 합니다.
비트란디아에는 하나의 고속도로로 연결된 개의 도시가 있습니다. 1번 도시의 동쪽에 Bitzon의 물류 창고가 있습니다. 창고에서 1번 도시까지의 거리는 시간 단위, 1번 도시에서 2번 도시까지는 시간 단위이며, 아래 그림처럼 도시들이 한 줄로 이어집니다.

매일 창고에는 배송해야 할 많은 택배가 도착하고, 택배 기사가 이를 배달해야 합니다. 각 택배에는 배송 주소(도시 번호)와 배송을 마쳐야 하는 시각이 지정되어 있습니다. 택배 기사는 지정된 시각보다 일찍 배송할 수는 있지만, 지정된 시각보다 늦게 배송해서는 안 됩니다.
택배 기사는 아침에 창고에서 출발하며(이 순간을 시각 으로 둡니다), 고속도로를 따라 도시 사이를 오가며 택배를 배송합니다.
이 문제에서는 택배를 전달하는 데 걸리는 시간은 으로 간주하고, 한 도시에서 다른 도시로 이동하는 시간만 고려합니다.
배송해야 할 택배 목록이 주어질 때 다음을 구하세요.
- 택배 기사가 모든 택배를 늦지 않게 배송할 수 있는지 여부.
- 모든 택배를 배송하고 창고로 돌아오는 데 필요한 최소 시간.
입력
첫째 줄에 도시의 수 이 주어집니다. 둘째 줄에는 개의 정수 이 주어집니다. 여기서 은 창고에서 1번 도시까지의 거리이고, 인 경우 는 번 도시에서 번 도시까지의 거리입니다. 셋째 줄에는 택배의 수 가 주어집니다.
이어지는 개의 줄에는 각 택배의 정보가 주어집니다. 각 줄에는 두 정수, 택배를 배송할 도시 번호 ()와 배송이 가능한 가장 늦은 시각 가 주어집니다.
택배 기사는 시각 에 창고에서 출발합니다. 같은 도시로 두 개 이상의 택배가 배송될 수 있습니다. 택배 기사는 (늦지 않는 한) 어떤 순서로든 택배를 배송할 수 있습니다.
출력
모든 택배를 배송하고 창고로 돌아오는 데 필요한 최소 시간을 정수 하나로 출력하세요. 만약 단 하나의 택배라도 제시간에 배송할 수 없다면 을 출력하세요.