해시 함수
시간 제한3초메모리 제한256 MB
길이 N인 소문자 단어 중 33 곱셈과 xor를 반복한 해시를 2^M으로 나눈 나머지가 K인 경우를 셉니다.
문제
창영이는 시스템 프로그래밍 숙제에 쓸 해시 함수를 만들고 있다. 이 함수는 단어를 숫자로 바꾸며, 다음과 같이 재귀적으로 정의된다.
은 빈 단어, 는 단어, 는 그 뒤에 붙이는 한 글자다. 단어는 알파벳 소문자로만 이루어진다. 는 비트 단위 XOR 연산이고 (), 는 가 알파벳에서 몇 번째 글자인지를 나타낸다 (, ). 는 를 로 나눈 나머지다.
이면 해시값은 다음과 같다.
길이가 인 단어 중 해시값이 인 것이 몇 개인지 세는 프로그램을 작성하시오.
입력
첫째 줄에 , , 이 공백으로 구분되어 주어진다. (, , )
출력
길이가 이고 해시값이 인 단어의 개수를 출력한다.
힌트
, , 일 때 조건을 만족하는 단어는 dxl, hph, lxd, xpx이다.