아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

품질 검사

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 부품 종류에서 하나씩 뽑은 세 부품의 검사 결과가 PASS 또는 FAIL로 주어질 때, 모든 부품이 확실히 정상인지, 확실히 고장인지, 판단할 수 없는지 결정한다.
난이도

보통10점 중 5점

유형
구현, 완전 탐색, 시뮬레이션
정답자
아직 제출이 없습니다

문제

한 공장에서 세 종류의 부품 A, B, C를 생산한다. 하루에 A 부품은 aa개, B 부품은 bb개, C 부품은 cc개를 만들며, 부품에는 다음과 같이 1번부터 차례대로 번호가 붙는다.

  • A 부품: 1번 ~ aa번
  • B 부품: a+1a+1번 ~ a+ba+b번
  • C 부품: a+b+1a+b+1번 ~ a+b+ca+b+c번

모든 부품이 완벽하게 만들어지지는 않으므로 일부 부품은 결함이 있을 수 있다. 공장에서는 매일 다음과 같이 부품을 검사한다.

  • A, B, C 부품을 하나씩 골라 서로 연결한 뒤 작동시킨다.
  • 세 부품이 모두 정상이면 기계가 정상 작동하여 그 검사는 합격이다.
  • 세 부품 중 하나라도 고장이면 기계가 오작동하여 그 검사는 불합격이다.

검사는 매우 정밀하여, 고장 난 부품이 섞여 있는데도 우연히 합격하는 일은 절대 없다. 즉, 합격한 검사에 사용된 세 부품은 모두 정상임이 보장된다.

그런데 담당자가 게을러 검사를 충분히 하지 않고 끝내는 경우가 있다. 하루 동안의 검사 결과 목록이 주어질 때, 각 부품이 다음 세 가지 중 무엇인지 판정하여라.

  • 정상: 그 부품이 정상임을 확실히 알 수 있는 경우
  • 고장: 그 부품이 고장임을 확실히 알 수 있는 경우
  • 알 수 없음: 주어진 검사 결과만으로는 정상인지 고장인지 확정할 수 없는 경우

입력

첫째 줄에 A 부품의 개수 aa, B 부품의 개수 bb, C 부품의 개수 cc가 공백으로 구분되어 주어진다. (1≤a,b,c≤1001 \le a, b, c \le 100)

둘째 줄에 검사 횟수 NN이 주어진다. (1≤N≤10001 \le N \le 1000)

이어지는 NN개의 줄에는 각 검사 결과가 주어진다. 각 줄에는 사용한 A 부품 번호 ii, B 부품 번호 jj, C 부품 번호 kk, 검사 결과 rr가 공백으로 구분되어 주어진다. r=1r = 1이면 합격, r=0r = 0이면 불합격이다.

부품 번호는 위에서 정한 전체 번호를 그대로 사용하므로 1≤i≤a1 \le i \le a, a+1≤j≤a+ba+1 \le j \le a+b, a+b+1≤k≤a+b+ca+b+1 \le k \le a+b+c이다.

출력

a+b+ca+b+c개의 줄에 걸쳐 1번 부품부터 a+b+ca+b+c번 부품까지 각각의 판정 결과를 한 줄에 하나씩 출력한다.

  • 부품이 고장이면 0
  • 부품이 정상이면 1
  • 정상인지 고장인지 알 수 없으면 2

예제4

  1. 예제 1

    입력
    2 2 2
    4
    2 4 5 0
    2 3 6 0
    1 4 5 0
    2 3 5 1
    
    예상 출력
    2
    1
    1
    0
    1
    0
    
  2. 예제 2

    입력
    1 1 1
    1
    1 2 3 1
    
    예상 출력
    1
    1
    1
    
  3. 예제 3

    입력
    1 1 1
    1
    1 2 3 0
    
    예상 출력
    2
    2
    2
    
  4. 예제 4

    입력
    2 1 1
    2
    1 3 4 1
    2 3 4 0
    
    예상 출력
    1
    0
    1
    1