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

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

자동차 번호판

면접 대비

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

요약
러시아 자동차 번호판(글자 하나, 숫자 세 개, 글자 두 개)이 주어질 때, 숫자 세 개와 글자 세 개를 각각 재배열해 만들 수 있는 서로 다른 번호판을 모두 출력한다.
난이도

보통10점 중 4점

유형
조합론, 구현, 해시맵, 문자열
정답자
아직 제출이 없습니다

문제

교통사고를 수사할 때, 사고 현장을 떠난 차량을 찾는 일은 자주 문제가 된다.

목격자의 진술을 확보하는 것은 쉬운 일이 아니다. 목격자들이 차량 번호를 대략적으로만 기억하는 경우가 매우 많기 때문에 상황은 더 어려워진다. 게다가 진술자는 번호에 있는 숫자나 글자의 순서를 잘못 기억할 가능성이 크다.

사고 목격자에게서 받은 번호가 주어졌을 때, 글자와 숫자를 재배열해서 만들 수 있는 서로 다른 번호의 개수를 세고, 그러한 번호를 모두 출력하시오.

러시아의 자동차 번호판은 세 개의 글자와 세 개의 숫자로 이루어지며, 다음과 같은 순서로 배열된다는 점을 상기하자: 글자 하나, 숫자 세 개, 그다음 글자 두 개. 차량이 등록된 지역을 나타내는 번호판 부분은 무시한다.

번호판에는 다음 글자만 사용할 수 있다: <<A>>, <<B>>, <<C>>, <<E>>, <<H>>, <<K>>, <<M>>, <<O>>, <<P>>, <<T>>, <<X>>, <<Y>> (이 글자들은 러시아어와 라틴어 알파벳 모두에서 비슷하게 생긴 글자가 있다). 이 문제에서 입력 파일에는 라틴 알파벳 글자가 사용된다.

입력

입력 파일에는 올바른 자동차 번호 하나가 한 줄로 주어진다.

출력

출력 파일의 첫 번째 줄에는 주어진 번호에서 글자와 숫자를 재배열해서 만들 수 있는 번호의 개수 kk를 출력한다.

그다음 kk개의 줄에는 그러한 번호를 모두 임의의 순서로 출력한다.

예제1

  1. 예제 1

    입력
    X772KX
    
    예상 출력
    9
    X277XK
    X277KX
    X727XK
    X727KX
    X772XK
    X772KX
    K277XX
    K727XX
    K772XX