대륙 소 의회

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

요약
M마리 소가 서로 다른 두 법안에 찬성 또는 반대 투표를 하고, 각 소가 적어도 한 표에서 이겨야 한다. 각 법안이 모든 유효한 결과에서 통과하는지, 부결되는지, 아니면 결과에 따라 달라지는지 판정한다.
난이도

어려움10점 중 8점

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

문제

농장주 존(Farmer John)의 통치에 불만을 품은 소들이 농장을 떠나 최초의 대륙 소 의회(Continental Cowngress)를 세웠다. "모든 소가 원하는 것 하나는 얻는다"는 원칙에 따라, 소들은 다음과 같은 표결 방식을 정했다.

참석한 MM마리의 소(1≤M≤40001 \le M \le 4000)가 NN개의 법안(1≤N≤10001 \le N \le 1000)을 표결한다. 각 법안은 최종적으로 가결되거나 부결된다.

각 소는 서로 다른 두 법안 BiB_i와 CiC_i(1≤Bi,Ci≤N1 \le B_i, C_i \le N, Bi≠CiB_i \ne C_i)에 대해 각각 찬성 또는 반대(Y 또는 N)를 던진다. 두 표는 각각 VBiVB_i, VCiVC_i이며 값은 Y 또는 N이다.

모든 소가 자신의 두 표 중 적어도 하나에서 뜻을 이루도록 법안들을 가결하거나 부결해야 한다. 예를 들어 어떤 소가 법안 1에 찬성, 법안 2에 반대를 던졌다면, 유효한 결과에서는 법안 1이 가결되거나 법안 2가 부결되어야 한다(혹은 둘 다).

모든 소의 두 표가 주어질 때, 각 법안의 운명을 결정하여라. 모든 소를 만족시키는 결과가 존재하지 않으면 답은 IMPOSSIBLE이다. 그렇지 않으면 각 법안에 대해 다음을 출력한다.

  • Y — 모든 유효한 결과에서 그 법안이 가결되는 경우;
  • N — 모든 유효한 결과에서 그 법안이 부결되는 경우;
  • ? — 그 법안이 가결되는 유효한 결과와 부결되는 유효한 결과가 모두 존재하는 경우.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 MM.
  • 둘째 줄부터 M+1M+1번째 줄까지: i+1i+1번째 줄은 ii번째 소의 표를 공백으로 구분된 네 필드로 나타낸다 — 정수, 표, 또 다른 정수, 또 다른 표: BiB_i, VBiVB_i, CiC_i, VCiVC_i.

출력

  • 모든 소를 만족시키는 결과가 하나 이상 존재하면, NN개의 문자로 이루어진 한 줄을 출력한다. ii번째 문자는 법안 ii가 반드시 가결되면 Y, 반드시 부결되면 N, 결정할 수 없으면 ?이다.
  • 모든 소를 만족시키는 결과가 없으면 IMPOSSIBLE 한 줄을 출력한다.

예제1

  1. 예제 1

    입력
    3 4
    1 Y 2 N
    1 N 2 N
    1 Y 3 Y
    1 Y 2 Y
    
    예상 출력
    YN?