시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
비제네르(Vigenère) 암호는 반복되는 키로 메시지를 암호화한다. 평문과 키는 모두 대문자 알파벳 {A,B,…,Z} 로 이루어진 문자열이며, 각 글자를 A=0,B=1,…,Z=25 로 대응시킨다. 평문 P 와 키 Q 가 주어지면, 암호문 C 는 P 와 길이가 같고 다음과 같이 정의된다.
Ci=(Pi+Qimod∣Q∣)mod26
결과를 다시 글자로 읽으며, 키 Q 는 메시지 전체를 덮을 때까지 반복된다. 복호화는 그 역으로 Pi=(Ci−Qimod∣Q∣)mod26 이다.
비밀 조직인 아마추어 암호 해독 운동(Amateur Codebreakers Movement, ACM)은 은행 강도 일당이 다시 범행을 저지르려 한다고 강하게 의심하고 있다. 하지만 목표 은행의 이름도, 정확한 날짜와 시각도 알지 못한다. ACM 은 강도들과 도주 차량 운전자가 주고받는 메시지를 도청할 수 있지만, 모든 메시지는 비제네르 암호로 암호화되어 있다.
당신의 임무는 이 암호를 해독하는 것이다. 원래 평문에 나타날 가능성이 매우 높은 두 단어, 이른바 크립(crib) 이 주어진다. (이렇게 추측한 단어들은 예컨대 유명한 에니그마(Enigma) 기계를 해독할 때 결정적인 역할을 했다.)
입력은 여러 개의 테스트 인스턴스로 이루어진다. 각 인스턴스는 네 줄로 구성된다.
두 크립 W1,W2 와 암호문 C 는 모두 대문자 알파벳 {A,B,C,…,Z} 로만 이루어진다. 입력은 0 하나만 있는 줄로 끝난다.
각 인스턴스에 대해, 다음 조건을 모두 만족하는 서로 다른 평문의 개수를 구하라.
각 인스턴스마다 한 줄씩 출력한다.
ambiguous 를 출력한다.impossible 을 출력한다.