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

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

K-인버전

시간 제한10초메모리 제한512 MB

요약
길이 k마다 s[i]='B', s[j]='A'이고 j-i=k인 쌍 (i,j)의 개수를 모두 구해, k=1부터 n-1까지 각 줄에 출력한다.
난이도

보통10점 중 7점

유형
분할 정복, 문자열, 구현, 수학
정답자
아직 제출이 없습니다

문제

대문자 A와 B로만 이루어진 문자열 ss가 주어진다. 길이를 nn이라고 하자. 정수 kk에 대해 인덱스 쌍 (i,j)(i, j)가 1≤i<j≤n1 \le i < j \le n, s[i]=Bs[i] = \text{B}, s[j]=As[j] = \text{A}, j−i=kj - i = k를 모두 만족하면 이 쌍을 kk-인버전이라고 부른다.

문자열 BABA를 보자. 1-인버전이 두 개, 3-인버전이 한 개 있고 2-인버전은 없다.

11부터 n−1n - 1까지의 각 kk에 대해 ss에 들어 있는 kk-인버전의 개수를 구하시오.

입력

첫째 줄에 문자열 ss가 주어진다. ss는 대문자 A와 B로만 이루어지고 공백은 없다. ss의 길이 nn은 1≤n≤1 000 0001 \le n \le 1\,000\,000을 만족한다.

출력

n−1n - 1개의 줄에 정수를 하나씩 출력한다. 첫째 줄에는 1-인버전의 개수를, 둘째 줄에는 2-인버전의 개수를 출력하고, 같은 방식으로 (n−1)(n - 1)-인버전의 개수까지 차례대로 출력한다. n=1n = 1이면 아무것도 출력하지 않는다.

예제2

  1. 예제 1

    입력
    BABA
    
    예상 출력
    2
    0
    1
    
  2. 예제 2

    입력
    BBBBBAAAAA
    
    예상 출력
    1
    2
    3
    4
    5
    4
    3
    2
    1