본문

160103A(일)

ACM-ICPC

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;


public class Main {

 public static void main(String[] args) throws IOException {
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
  int splitArr[];

  int T;
  int N, M;
  int S;
  
  boolean flag;

  T = Integer.parseInt(br.readLine());

  for(int i = 0; i < T; i++) {
   flag = true;
   
   splitArr = inputInt();
   
   N = splitArr[0];
   M = splitArr[1];
   
   int solNumArr[];
   boolean solArr[] = new boolean[M];
   
   for(int j = 0; j < N; j++) {
    solNumArr = inputInt();
    
    if(solNumArr[0] < 0 || solNumArr[0] == M) {
     flag = false;
    }
    
    for(int l = 1; l <= solNumArr[0]; l++) {
     solArr[solNumArr[l] - 1] = true;
    }
   }
   
   for(int m = 1; m < M; m++) {
    if(solArr[m] == false) {
     flag = false;
    }
   }
   
   if(flag == true) {
    System.out.println("YES");
   }
   
   else {
    System.out.println("NO");
   }
  }
 }
 
 public static int[] inputInt() throws IOException {
  BufferedReader brin = new BufferedReader(new InputStreamReader(System.in));
  StringTokenizer token = null;
  int inputNum[] = new int[500];
  
  token = new StringTokenizer(brin.readLine());

  int k = 0;
  while(token.hasMoreTokens()) {
   inputNum[k] = Integer.parseInt(token.nextToken());
   
   k++;
  }

  return inputNum;
 }
}


 


문제

 

K모 대학의 한 교수님께서는 대회에 사용되는 M 개의 문제들이 있을 때 다음의 조건을 만족해야 '좋은 문제 집합' 이라고 정의하신다.
1. 모든 참가자는 적어도 한 문제를 풀어야 한다.
2. 모든 문제를 푼 참가자는 없어야 한다.
3. 각 문제는 적어도 한 참가자에 의해 풀려야 한다.

경근이는 KAIST ACM-ICPC 모의대회의 검수를 하게 되었다. 그는 대회에 참가할 N 명의 참가자가 어떤 문제들을 풀지 문제들의 수준을 보고 예상 하였다. 그 예상한 결과가 실제로 이루어졌을 때 과연 문제들은 '좋은 문제 집합' 의 기준을 만족할까?

 

입력

 

첫 줄에는 테스트 케이스의 수 T 가 주어진다.

각 테스트 케이스마다 첫 번째 줄에는 참가자의 수 N(1≤N≤500) 과 문제의 수 M(1≤M≤500) 이 주어진다. 다음 N개의 줄에는 각 참가자들이 풀 수 있다고 예상된 문제들에 대한 정보들이 주어진다. 각 줄에는 i 번째 참가자가 풀 수 있다고 예상되는 문제들의 개수 X i (0≤X i ≤M) 가 먼저 주어지고 뒤이어 참가자가 풀 수 있다고 보이는 문제의 번호들을 나타내는 서로 다른 X i  개의 수가 주어진다. (모든 문제는 1,2,⋯,M 으로 숫자가 매겨진다)

 

출력

 

각 테스트케이스마다 문제 집합이 ‘좋은 문제 집합’이면 YES, 아니면 NO를 한 줄에 출력한다.

 

예제 입력

2
3 4
2 3 4
3 1 2 3
1 1
3 3
3 3 2 1
2 2 1
1 1

예제 출력

YES
NO

이클립스 콘솔창으로 입력과 출력이 제대로 이루어지는것을 확인하였다.

하지만 알고스팟에서는 런타임오류가 나는데 아무래도 readLine하여 Tokenizer하는 과정에서 에러가 나는것 같다.

수정하여 다시 도전해보겠다.

'Architecture > ACM-ICPC' 카테고리의 다른 글

160107A(목)  (0) 2016.01.08
160106A(수)  (0) 2016.01.07
160103A(일)  (0) 2016.01.03
151226A(토)  (0) 2015.12.26
151222A(화)  (0) 2015.12.23

공유

댓글