작업 처리
면접 대비시간 제한4초메모리 제한1024 MB
N개의 고정 구간과, 질의마다 추가되는 구간들이 주어질 때, 각 질의에서 서로 겹치지 않게 고를 수 있는 구간의 최대 개수를 구한다.
문제
개의 작업이 있다. 각 작업은 두 정수 로 표현되며 (), 이는 해당 작업이 에 시작해서 에 종료됨을 뜻한다. 두 작업의 작업 기간이 겹치면 두 작업을 모두 수행할 수는 없다. (단, 어느 한 작업의 종료 시각과 다른 한 작업의 시작 시각이 같다면 작업 기간이 겹치지 않는 것으로 본다.)
어떠한 공장에서는 최대한 많은 작업을 처리하려고 하는데, 위에서 설명한 대로 한 시점에 최대 하나의 작업밖에 처리하지 못 하기 때문에 처리할 수 있는 작업에 한계가 있다. 공장을 확장하는 대신, 더 다양한 작업들을 추가해서 이 문제를 해결하려고 한다.
개의 질의가 주어진다. 번 질의에는 개의 작업이 추가로 주어진다. 각 질의에 대해, 개의 작업 중 처리할 수 있는 최대 개수 작업의 개수를 출력하여라.
예를 들어, , 이고 기본 작업을 시작 시각과 종료 시각의 쌍으로 표현했을 때의 집합이 , 질의 2개는 라고 하자. 첫번째 질의에 대해서는 의 총 4개의 작업을 수행하는 것이 최적이며, 두번째 질의에 대해서는 의 총 3개의 작업을 수행하는 것이 최적이다.
입력
파일의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 가 주어지고,
이후 차례로 개의 테스트 케이스가 주어진다. ()
각 테스트 케이스의 첫 줄에는 작업의 수 이 주어진다. ()
이후 개의 줄에 작업의 시작 시간과 종료 시간 가 주어진다. ()
다음 줄에 질의의 수 가 주어진다. ()
이후 각 질의가 다음과 같이 주어진다. 각 질의의 첫 줄에는 새 작업의 개수 가 주어진다. ()
이후 개의 줄에 작업의 시작 시간과 종료 시간 가 주어진다. ()
모든 테스트 케이스들에 대한 의 합은 이하이다.
모든 테스트 케이스들에 대한 의 합은 이하이다.
출력
각 테스트 케이스마다 첫 줄에는 Case # 를 출력하여야 한다. 이때 는 테스트 케이스의 번호이다.
이후 개 줄에 걸쳐 각 질의의 답을 출력하라.