보안 게임
시간 제한2초메모리 제한512 MB
각 로봇 용량 B에 대해 로봇을 보호 가능한 건물에 배치하되 모든 건물이 요구 범위를 만족하도록 하면서 총 로봇 수를 최대로 하고, 불가능하면 -1을 출력한다.
문제
Albert는 "보안 게임" 이라는 보드 게임을 즐겨한다. 이 게임은 총 개의 보안용 로봇을 적절히 활용하여 개의 건물을 보호하는 것이 목표인데, 몇 가지 까다로운 규칙이 있다.
- 각 로봇은 최대 개의 다른 건물을 동시에 보호할 수 있다.
- 각 로봇이 모든 건물을 보호할 수 있는 것은 아니고, 번째 로봇은 총 개의 다른 건물을 보호할 수 있는데, 보호 가능한 건물들을 로 나타내자 ( 이고 이다).
- 번째 건물은 최소 대 그리고 최대 대의 다른 로봇을 통해 보호 되어야 한다 -- 이 때 각 건물의 점수는 해당 건물을 지키는 로봇의 수로 정해진다.
- 위 규칙을 모두 지키면서 로봇을 배치하였다면 게임의 점수는 각 건물의 점수 총합이 된다. 만약 위 규칙을 모두 지키면서 로봇을 배치할 수 있는 방법이 없다면 게임의 점수는 -1 점이 된다.
편의상 는 일 때 Albert가 얻을 수 있는 최대 게임 점수로 정의하자 ().
예를 들어 , , 그리고 , 이라 하자.
- 만약 이라면 다음 방법으로 최대 3점을 얻을 수 있다:
- 로봇 1이 건물 2를 보호, 로봇 2가 건물 1을 보호, 로봇 3이 건물 3을 보호 -- 이 경우, 각 건물의 점수는 1점이고 게임의 점수는 3이다.
- 만약 이라면 다음 방법으로 최대 6점을 얻을 수 있다:
- 로봇 1이 건물 1과 2를 보호, 로봇 2가 건물 1과 3을 보호, 로봇 3이 건물 2와 3을 보호 -- 이 경우, 각 건물의 점수는 2점이고 게임의 점수는 6이다.
- 만약 혹은 그 이상이더라도 6점보다 더 많은 점수를 얻을 방법은 없다. 따라서 이다.
다른 예로, , , 그리고 , 이라 하자.
- 2번 건물의 경우 이므로 반드시 2대의 다른 로봇이 2번 건물을 보호해야한다.
- 하지만 2번 건물을 보호할 수 있는 로봇은 1번 뿐이므로, 의 값에 관계 없이 게임의 점수는 -1점이 된다.
- 이 경우 이 된다.
입력으로 가 주어졌을 때, 값에 따라 Albert가 얻을 수 있는 최대 점수를 구해보자 (즉, ).
입력
입력 첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스의 첫 줄에는 이 공백으로 구분되어 주어진다. 다음 줄에 걸쳐 각 줄에는 번째 로봇이 배치될 수 있는 건물의 수 와 함께 건물의 번호인 개의 정수가 () 공백으로 구분되어 주어진다 (즉, 각 줄에는 개의 정수가 주어진다). 다음 줄에 걸쳐 각 줄에 한 쌍의 정수 가 주어지는데 이는 번째 건물에 배치되어야 하는 최소/최대 로봇의 수를 나타낸다.
출력
각 테스트 케이스의 정답인 을 공백으로 구분하여 각 줄에 출력한다.
제한
-
-
-
-
인 에 대하여:
- 에 중복된 값은 없다
-
인 에 대하여: