만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

보안 게임

시간 제한2초메모리 제한512 MB

요약
각 B에 대해 로봇당 최대 B개 건물, 건물당 L_k개 이상 U_k개 이하의 로봇 조건에서 최대 점수를 구합니다. 배치가 불가능하면 -1입니다.
난이도

보통10점 중 7점

유형
그래프, 구현
정답자
아직 제출이 없습니다

문제

Albert는 "보안 게임"이라는 보드 게임을 즐겨 한다. 이 게임의 목표는 NN개의 보안용 로봇을 적절히 활용하여 MM개의 건물을 보호하는 것이다. 게임에는 다음과 같은 규칙이 있다.

  1. 각 로봇은 최대 BB개의 서로 다른 건물을 동시에 보호할 수 있다.
  2. 모든 로봇이 모든 건물을 보호할 수 있는 것은 아니다. ii번째 로봇은 gig_i개의 서로 다른 건물을 보호할 수 있으며, 이 건물들을 xi,jx_{i,j}로 나타낸다 (1≤j≤gi1 \le j \le g_i, 1≤xi,j≤M1 \le x_{i,j} \le M).
  3. kk번째 건물은 최소 LkL_k대, 최대 UkU_k대의 서로 다른 로봇이 보호해야 한다. 각 건물의 점수는 그 건물을 지키는 로봇의 수로 정한다.
  4. 위 규칙을 모두 지키면서 로봇을 배치했다면, 게임의 점수는 각 건물 점수의 총합이다. 위 규칙을 모두 지키면서 로봇을 배치할 방법이 없다면 게임의 점수는 -1점이다.

편의상 SbS_b는 B=bB = b일 때 Albert가 얻을 수 있는 최대 게임 점수로 정의한다 (1≤B≤M1 \le B \le M).

예를 들어 N=M=3N = M = 3, g=[2,2,2]g = [2, 2, 2], x=[[1,2],[1,3],[2,3]]x = [[1, 2], [1, 3], [2, 3]], L=[1,1,1]L = [1, 1, 1], U=[3,3,3]U = [3, 3, 3]이라 하자.

  • B=1B = 1이라면 로봇 1이 건물 2를, 로봇 2가 건물 1을, 로봇 3이 건물 3을 보호하는 방법으로 최대 3점을 얻을 수 있다. 이때 각 건물의 점수는 1점이고 게임의 점수는 3이다.
  • B=2B = 2라면 로봇 1이 건물 1과 2를, 로봇 2가 건물 1과 3을, 로봇 3이 건물 2와 3을 보호하는 방법으로 최대 6점을 얻을 수 있다. 이때 각 건물의 점수는 2점이고 게임의 점수는 6이다.
  • B=3B = 3 이상이라도 6점보다 많은 점수를 얻을 방법은 없다. 따라서 S=[3,6,6]S = [3, 6, 6]이다.

다른 예로, N=4N = 4, M=3M = 3, g=[3,1,1,1]g = [3, 1, 1, 1], x=[[1,2,3],[1],[1],[3]]x = [[1, 2, 3], [1], [1], [3]], L=[1,2,1]L = [1, 2, 1], U=[2,2,2]U = [2, 2, 2]라 하자.

  • 2번 건물은 L2=U2=2L_2 = U_2 = 2이므로 반드시 2대의 서로 다른 로봇이 보호해야 한다.
  • 그런데 2번 건물을 보호할 수 있는 로봇은 1번뿐이므로, BB의 값과 관계없이 게임의 점수는 -1점이다.
  • 이 경우 S=[−1,−1,−1]S = [-1, -1, -1]이다.

입력

입력의 첫 줄에 테스트 케이스의 수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 NN과 MM이 공백으로 구분되어 주어진다. 다음 NN개의 줄에는 각각 ii번째 로봇을 배치할 수 있는 건물의 수 gig_i와 건물 번호 xi,1,xi,2,…,xi,gix_{i,1}, x_{i,2}, \dots, x_{i,g_i}가 공백으로 구분되어 주어진다. 즉 각 줄에는 gi+1g_i + 1개의 정수가 주어진다. 다음 MM개의 줄에는 각각 kk번째 건물에 배치되어야 하는 최소 로봇 수 LkL_k와 최대 로봇 수 UkU_k가 한 쌍의 정수로 주어진다.

출력

각 테스트 케이스의 정답 S1,S2,…,SMS_1, S_2, \dots, S_M을 공백으로 구분하여 각 줄에 출력한다.

제한

  • 1≤T≤101 \le T \le 10
  • 1≤N,M≤2001 \le N, M \le 200
  • ∑1≤i≤Ngi≤5000\sum_{1 \le i \le N} g_i \le 5000
  • 1≤i≤N1 \le i \le N인 ii에 대하여:
    • 1≤gi≤M1 \le g_i \le M
    • 1≤xi,1,xi,2,…,xi,gi≤M1 \le x_{i,1}, x_{i,2}, \dots, x_{i,g_i} \le M
    • xi,1,xi,2,…,xi,gix_{i,1}, x_{i,2}, \dots, x_{i,g_i}에 중복된 값은 없다
  • 1≤k≤M1 \le k \le M인 kk에 대하여: 1≤Lk≤Uk≤N1 \le L_k \le U_k \le N

예제1

  1. 예제 1

    입력
    3
    3 3
    2 1 2
    2 1 3
    2 2 3
    1 3
    1 3
    1 3
    4 3
    3 1 2 3
    1 1
    1 1
    1 3
    1 2
    2 2
    1 2
    5 3
    2 1 2
    1 3
    2 1 2
    1 2
    1 3
    1 2
    2 2
    1 1
    
    예상 출력
    3 6 6
    -1 -1 -1
    4 5 5