해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
245
MB
가끔 Mister B에게는 무엇을 해야 할지 모르는 한가한 저녁이 찾아온다. 다행히 Mister B는 플레이어가 외계인과 대결할 수 있는 새로운 게임을 발견했다.
이 게임의 모든 문자는 영어 소문자이다. 플레이어는 Mister B와 그의 경쟁자, 이렇게 둘이다.
처음에 플레이어들은 알파벳 순서상 처음 a개의 영어 문자 (for example, if a = 5, then s equals to "abcde")로 이루어진 문자열 s을 가지고 있다.
플레이어들은 번갈아 문자열 s에 문자를 덧붙인다. Mister B가 먼저 움직인다.
Mister B는 자신의 차례마다 정확히 b개의 문자를 덧붙여야 한다. 그는 이 문자들을 임의로 선택할 수 있다. 상대는 자신의 차례마다 정확히 a개의 문자를 추가한다.
Mister B는 상대가 단순한 알고리즘을 사용하는 컴퓨터일 뿐이라는 사실을 빠르게 알아차렸다. 컴퓨터는 매 차례 문자열 s에서 길이가 a인 접미사를 살펴보고, 모든 문자가 서로 다르며 살펴본 접미사에 등장하지 않는 길이 a의 문자열 t를 생성한다. 가능한 여러 t 중 사전순으로 가장 작은 것을 선택한다 (if a = 4 and the suffix is "bfdd", the computer chooses string t equal to "aceg"). 그런 다음 선택한 문자열 t를 s의 끝에 덧붙인다.
Mister B는 곧 게임이 지루해져서 다음과 같은 질문을 생각해 냈다. 문자열 s에서 l번 위치부터 r번 위치까지 양 끝을 포함한 구간에 있는 서로 다른 문자의 수로 가능한 최솟값은 얼마인가? 문자열 s의 문자 위치는 1부터 번호가 매겨진다.
첫 번째이자 유일한 줄에는 공백으로 구분된 네 정수 a, b, l, r (1 ≤ a, b ≤ 12, 1 ≤ l ≤ r ≤ 109)이 주어진다. 이는 각 플레이어가 덧붙이는 문자의 수와 구간의 양 끝점이다.
문자열 s에서 l번 위치부터 r번 위치까지 양 끝을 포함한 구간에 있는 서로 다른 문자의 수로 가능한 최솟값을 나타내는 정수 하나를 출력한다.
4 2 2 6
3
1 1 1 8
2
3 7 4 6
1
첫 번째 예제 테스트에서는 최적 전략 중 하나로 문자열 s = "abababab..."를 생성하며, 그것이s 답이 2인 이유이다.
두 번째 예제 테스트에서는 문자열 s = "abcdbcaefg..."를 얻을 수 있고, 선택한 구간은 "bcdbc"와 같으며, 그것이s 답이 3인 이유이다.
세 번째 예제 테스트에서는 문자열 s = "abczzzacad..."를 얻을 수 있고, 선택한, 구간은 "zzz"와 같으며, 그것이s 답이 1인 이유이다.