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

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

동전

시간 제한1초메모리 제한128 MB

요약
동전 던지기 결과 문자열에서 앞면의 개수가 뒷면의 개수의 k배인 가장 긴 연속 구간의 길이를 구한다.
난이도

보통10점 중 6점

유형
누적 합, 해시맵, 수학
정답자
아직 제출이 없습니다

문제

조는 자신에게 염력이 있다고 주장한다. 철저한 합리주의자인 스탠은 이 말에 충격을 받았고, 곧바로 조에게 그것을 증명해 보이라고 요구했다.

조는 동전을 던져서 자신의 능력을 보여 주기로 했다. 그는 앞면이 뒷면보다 정확히 kk배 더 많이 나오도록 던질 수 있다고 말한다. 스탠은 모든 던지기의 결과를 순서대로 기록했고, 이제 앞면의 수가 뒷면의 수의 정확히 kk배인 가장 긴 연속 구간을 찾으려고 한다.

입력

첫째 줄에 두 정수 nn과 kk가 주어진다 (3≤n≤1063 \le n \le 10^6, 2≤k≤n−12 \le k \le n - 1). nn은 조가 던진 횟수이고, kk의 의미는 문제에서 설명한 것과 같다.

둘째 줄에는 각 던지기의 결과를 나타내는 nn개의 문자로 이루어진 문자열이 주어진다. 각 문자는 앞면을 뜻하는 O 또는 뒷면을 뜻하는 R 중 하나이다.

출력

앞면의 수가 뒷면의 수의 정확히 kk배인 가장 긴 연속 구간의 길이를 한 줄에 정수 하나로 출력한다. 그러한 구간이 존재하지 않으면 00을 출력한다.

힌트

예시 입력에서 5번째부터 12번째까지의 구간과 6번째부터 13번째까지의 구간은 각각 앞면 6개와 뒷면 2개를 포함한다. 즉 앞면이 뒷면보다 세 배 많다. 이 성질을 만족하는 더 긴 연속 구간은 없으므로 답은 8이다.

예제3

  1. 예제 1

    입력
    15 3
    RORROOROOROOORO
    
    예상 출력
    8
    
  2. 예제 2

    입력
    3 2
    ORO
    
    예상 출력
    3
    
  3. 예제 3

    입력
    3 2
    OOO
    
    예상 출력
    0