이상한 문자열 조작
시간 제한8초메모리 제한512 MB
바이트 문자열이 주어질 때 고정된 LCG의 4096개 매개변수 조합을 모두 살펴보고, 이동 후 출력 문자열의 엔트로피를 최소로 만드는 조합을 출력한다.
문제
선형 합동 생성기는 다음 수식으로 의사 난수열 을 만든다:
, (for ),
여기서 , , , 은 모두 매개변수이다. 이 문제에서 이고 이다.
이제 각 문자가 과 사이의 정수인 입력 문자열 가 있다. 의사 난수열 을 이용해 다음 수식으로 출력 문자열 를 얻는다:
(for ),
출력 문자열 의 정보 엔트로피가 최소가 되도록 하는 매개변수 , , 를 구하는 프로그램을 작성하라. 정보 엔트로피 는 다음과 같다:
H = -\sum\_{x}{\frac{\text{#}(x)}{N}\log{\frac{\text{#}(x)}{N}} }
여기서 은 문자열의 길이이고 \text{#}(x)는 문자 가 나타나는 횟수이다.
입력
입력은 다음 형식으로 주어진다:
은 256을 넘지 않는다.
출력
세 매개변수 , , 의 값을 공백 하나로 구분해 한 줄에 출력한다. 최소 엔트로피를 주는 답이 여러 개라면 , , 순서로 작은 것을 고른다.