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