밥 먹기
시간 제한1초메모리 제한128 MB
번호 순서가 고정된 N마리의 소에 대해 두 소 사이 거리의 상한과 하한 조건이 주어질 때, 소 1과 소 N 사이 거리의 최댓값을 구하고 불가능하거나 무한히 커질 수 있는 경우를 판별한다.
문제
소들이 밥을 먹으려고 번호 순서대로 일직선 위에 줄을 선다. 선영이는 소를 마리 () 기르고 있으며, 각 소에는 번부터 번까지 번호가 붙어 있다. 소들은 번호가 커지는 순서대로 서므로, 번 소의 좌표를 라 하면 을 만족한다. 두 마리 이상의 소가 같은 좌표에 설 수도 있다.
서로 친한 소들은 일정 거리 이내로 붙어 있으려 하고, 서로 싫어하는 소들은 일정 거리 이상 떨어져 있으려 한다. 친한 소 쌍과 두 소가 떨어질 수 있는 최대 거리가 길이 ()인 목록으로 주어지고, 이어서 싫어하는 소 쌍과 두 소가 떨어져 있어야 하는 최소 거리가 길이 ()인 목록으로 주어진다.
이 모든 조건을 만족하도록 줄을 세울 수 있다면, 번 소와 번 소 사이의 최대 거리를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 , , 가 공백으로 구분되어 주어진다.
이어지는 개의 줄에는 각각 정수 , , ()가 공백으로 구분되어 주어진다. 이는 번 소와 번 소가 최대 ()만큼 떨어질 수 있음을 뜻한다.
그 다음 개의 줄에는 각각 정수 , , ()가 공백으로 구분되어 주어진다. 이는 번 소와 번 소가 최소 ()만큼 떨어져 있어야 함을 뜻한다.
출력
첫째 줄에 번 소와 번 소 사이의 최대 거리를 출력한다. 조건을 만족하도록 줄을 세우는 것이 불가능하면 을, 최대 거리가 무한히 커질 수 있으면 를 출력한다.