가짜 스코어보드

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

요약
주어진 행별, 열별 합계를 만족하는 0/1 행렬(팀-문제 해결 표)을 복원해 가능하다면 사전순으로 가장 작은 것을 출력하고, 불가능하면 Impossible을 출력하는 문제입니다.
난이도

보통10점 중 6점

유형
그리디, 조합론, 행렬
정답자
아직 제출이 없습니다

문제

잘 알다시피, SWERC 시상식이 끝나면 제출과 판정에 대한 자세한 정보를 담은 전체 스코어보드를 공개하는 것이 관례이다. 그러나 오늘은 대회 관리 시스템의 결함 때문에 관련 데이터의 대부분이 기록되지 않고 있다. 이런 상황은 우리가 지키고자 하는 높은 기준에 명백히 미치지 못하므로, 심사위원들은 남아 있는 얼마 안 되는 정보만으로 나머지 데이터를 지어내되 참가자들이 그 차이를 알아채지 못하기를 바라기로 했다. 우리의 수고를 덜기 위해, 부디 당신이 해답을 제공해 주기를 부탁한다. 그렇지 않으면 오늘의 (가짜) 스코어보드는 영원히 미궁에 빠질 것이다.

대회가 끝날 때 우리가 알게 되는 것은 팀의 수 TT, 문제의 수 PP, 그리고 각 팀이 받은 정답 제출의 수이다. 또한 대회장을 떠다니는 풍선의 개수와 색을 보고, 각 문제를 몇 개의 팀이 풀었는지도 추론할 수 있다. 어떤 팀이 어떤 문제를 풀었는지 알아내는 것이 당신의 과제이다.

우리의 셈 실력이 뛰어나지 못하니, 당신의 프로그램은 수집된 데이터가 어떤 스코어보드와도 맞을 수 없는 경우를 감지할 수 있어야 한다(예제 입력의 첫 번째 경우가 그러한 예이다). 그렇지 않은 경우에는 가능한 해답 하나를 PP개의 문자로 이루어진 문자열 TT개의 나열로 출력해야 한다. 팀과 문제에는 각각 11부터 TT까지, 11부터 PP까지 서로 다른 정수 번호가 매겨져 있다. 팀 번호 ii (1≤i≤T1 \le i \le T)에 대해, 알파벳 {N, Y}로 이루어진 문자열을 쓰되, 그 jj번째 (1≤j≤P1 \le j \le P) 문자는 팀 ii가 문제 jj를 맞혔으면 Y, 아니면 N이다.

예를 들어, 다음 세 문자열은 예제 입력의 두 번째 경우에 대한 하나의 해답이며, 그 경우 세 팀의 점수는 각각 22, 11, 22이고 세 문제의 정답 제출 수는 각각 11, 22, 22이다.

NYY
NNY
YYN

또 다른 해답으로는 다음이 있다.

NYY
NYN
YNY

여러 해답이 가능할 때는, TT개의 행을 순서대로 이어 붙인 문자열이 사전순으로 가장 작은 것을 출력해야 한다. 위 예에서는 NYYNNYYYN이 NYYNYNYNY보다 사전순으로 앞서므로 첫 번째 해답을 택한다. (문자열 SS가 S′S'보다 사전순으로 앞선다는 것은, 두 문자열이 처음으로 달라지는 위치에서 SS는 N, S′S'는 Y라는 뜻이다.)

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 세 줄로 주어진다.

  • 첫째 줄에는 팀의 수 TT와 문제의 수 PP가 공백으로 구분되어 주어진다. (1≤T,P≤801 \le T, P \le 80)
  • 둘째 줄에는 공백으로 구분된 TT개의 정수가 주어지며, 각 값은 00 이상 9090 이하이다. ii번째 값은 팀 ii가 푼 문제의 개수이다.
  • 셋째 줄에는 공백으로 구분된 PP개의 정수가 주어지며, 각 값은 00 이상 9090 이하이다. jj번째 값은 문제 jj를 푼 팀의 수이다.

연속한 테스트 케이스는 빈 줄로 구분된다. 입력의 마지막 줄은 0 0이다.

출력

각 테스트 케이스에 대해, 데이터에 맞는 스코어보드가 존재하면 위에서 설명한 사전순으로 가장 작은 스코어보드를 PP개의 문자로 이루어진 TT개의 줄로 출력한다. 존재하지 않으면 Impossible이라는 한 줄을 출력한다. 서로 다른 테스트 케이스의 출력 사이에는 빈 줄을 하나 넣는다.

예제1

  1. 예제 1

    입력
    2 2
    1 2
    1 1
    
    3 3
    2 1 2
    1 2 2
    
    3 5
    3 3 1
    3 1 1 0 2
    
    0 0
    
    예상 출력
    Impossible
    
    NYY
    NNY
    YYN
    
    YNYNY
    YYNNY
    YNNNN