EDF
면접 대비시간 제한1초메모리 제한1024 MB
기존 작업 N개와 나중에 도착하는 작업 M개를 마감이 가장 가까운 작업부터 처리할 때, 모든 작업을 끝낼 수 있는지 판단하고 끝나는 시각을 구합니다.
문제
민구는 이번 년도에 일이 너무 많아서 개의 작업이 쌓여 있으며, 시간이 흐르면서 최대 개의 작업이 추가된다.
기존 작업은 필요한 시간 와 마감 시각 가 주어지고, 추가되는 작업은 추가되는 시각 , 필요한 시간 , 마감 시각 가 주어진다.
민구는 마감 시각이 가장 가까운 작업부터 시작한다. 작업 도중 새로 추가된 작업의 마감 시각이 현재 하던 작업보다 이르면, 새 작업으로 바꾼다. 중단된 작업은 나중에 이어서 할 수 있도록 필요한 시간에서 작업한 시간만큼 뺀다.
예를 들어, 필요한 시간이 20분인 작업을 15분 동안 하다가 다른 작업으로 바꾸었다면, 기존 작업은 추후 5분만 더 하면 완료된다.
마감 시각이 같은 작업은 남은 필요 시간이 더 적은 작업을 먼저 한다.
위 과정으로 개의 작업을 민구가 모두 완료할 수 있는지 알아본다. 민구는 한 가지 일에 집중하는 성격이라 한 번에 하나의 작업밖에 하지 못한다. 민구는 개의 작업을 모두 완료할 때까지 작업한다.
현재 시각은 초이다.
입력
첫 번째 줄에 작업의 개수 이 주어진다. ()
다음 개의 줄에 각 작업의 필요한 시간 와 마감 시각 가 주어진다. (, , )
번째 줄에 작업 도중 추가될 작업의 개수 이 주어진다. ()
다음 개의 줄에 각 추가 작업의 추가되는 시각 , 필요한 시간 , 마감 시각 가 주어진다. (, , )
출력
첫 번째 줄에 민구가 작업을 모두 완료하지 못하면 NO를, 모두 완료할 수 있으면 YES를 출력한다.
모두 완료할 수 있다면, 두 번째 줄에 모든 작업을 완료하는 최소 시각을 출력한다.