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

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

접촉자 추적

면접 대비

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

요약
날짜별 만남과 101일차 검사 결과가 주어질 때, 각 사람을 반드시 감염, 반드시 비감염, 판정 불가 중 하나로 분류한다.
난이도

보통10점 중 6점

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

문제

코로나19는 전염성이 있는 바이러스다. 어떤 사람이 바이러스를 가지고 있고 오늘 다른 사람과 만나면, 그 다른 사람도 내일부터 바이러스를 가지게 된다. 한 번 바이러스를 가지게 된 사람은 영원히 바이러스를 가진다고 가정한다.

0일째에는 다른 나라를 여행했기 때문에 바이러스를 가진 사람이 몇 명 있었다. 그러나 그날 이후 국경이 닫혔으므로, 새로운 사람이 바이러스에 감염될 수 있는 유일한 방법은 이미 감염된 사람과 만나는 것이다.

T-day라고 불리는 어느 날, 사람들은 서로 만나기를 멈추고 일부는 검사를 받는다. 검사는 그 사람이 T-day에 바이러스를 가지고 있는지 알려 준다.

입력

첫째 줄에 공백으로 구분된 세 수 N, M, T가 주어진다. N은 사람의 수, M은 만남의 수, T는 T-day에 시행한 코로나19 검사의 수이며, 0 ≤ T ≤ N ≤ 100이고 0 ≤ M ≤ N2이다.

다음 M개 줄에는 각각 만남을 설명하는 세 수 D, A, B가 공백으로 구분되어 주어진다. D는 만남이 일어나는 날이고, A와 B는 만나는 두 사람의 번호다. 각 사람의 번호는 1과 N 사이의 정수다. 날짜는 1 이상 100 이하의 정수를 사용하여 순서대로 번호가 매겨진다. T-day는 101일이다.

다음 T개 줄에는 각각 검사 결과를 나타내는 정수 R이 주어진다. R이 양수이면 R번 사람이 T-day에 바이러스를 가지고 있다. R이 음수이면 -R번 사람이 T-day에 바이러스를 가지고 있지 않다. 양수 R 앞에는 단항 +가 붙고, 음수 R은 -로 시작한다.

출력

N개 줄을 출력한다. i번째 줄에는 i번 사람이 T-day에 바이러스를 가질 수 없으면 -, 반드시 가져야 하면 +, 바이러스를 가지고 있는지 판별할 수 없으면 ?를 출력한다.

예제1

  1. 예제 1

    입력
    5 2 2
    1 1 2
    1 3 4
    +2
    -3
    
    예상 출력
    +
    +
    -
    -
    ?