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

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

Mõttemeister

면접 대비

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

요약
여러 추측과 각 추측의 자릿수 일치 개수 A, 위치까지 맞은 개수 B가 주어질 때, 모든 단서와 모순되지 않는 네 자리 비밀 수를 모두 찾는다.
난이도

보통10점 중 5점

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

문제

Mõttemeister는 두 사람이 즐기는 보드게임이다. 첫 번째 사람은 비밀의 네 자리 수를 마음속으로 정하고, 두 번째 사람은 그 수를 알아맞힌다.

매 차례마다 알아맞히는 사람은 네 자리 수를 하나 제시한다. 첫 번째 사람은 두 값 AA와 BB로 답하는데, AA는 제시한 수에 들어 있는 올바른 숫자의 개수이고, BB는 그중에서 자리까지 맞은 숫자의 개수이다.

그 후 알아맞히는 사람은 다시 새로운 수를 제시하며, 비밀의 수를 맞히거나 정해진 횟수를 넘길 때까지 게임이 이어진다.

예를 들어 비밀의 수가 52475247이라고 하자. 제시한 수 12341234에 대한 답은 22(숫자 22와 44가 올바름)와 11(숫자 22가 올바른 자리에 있음)이 된다.

제시한 수에 같은 숫자가 여러 번 나오면, 각 숫자는 비밀의 수에 들어 있는 개수만큼만 올바른 것으로 센다.

주어진 제시 수들과 그에 대한 답들을 바탕으로, 가능한 모든 비밀의 수를 찾는 프로그램을 작성하여라.

입력

첫째 줄에 정수 NN (1≤N≤10 0001 \le N \le 10\,000)이 주어진다. 다음 NN개의 줄에는 각각 한 차례의 정보가 주어진다: 제시한 네 자리 수, 그 수에서 올바른 숫자의 개수 AA (0≤A≤40 \le A \le 4), 그리고 그중 올바른 자리에 있는 숫자의 개수 BB (0≤B≤A0 \le B \le A).

출력

첫째 줄에 가능한 비밀의 수의 개수 MM을 출력한다. 다음 MM개의 줄에 가능한 비밀의 수를 오름차순으로 한 줄에 하나씩 출력한다. 각 수는 항상 네 자리로, 필요하면 앞에 00을 채워서 출력한다.

예제2

  1. 예제 1

    입력
    1
    1234 4 4
    
    예상 출력
    1
    1234
    
  2. 예제 2

    입력
    2
    0000 1 1
    1111 3 3
    
    예상 출력
    4
    0111
    1011
    1101
    1110