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

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

점프하는 개구리

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

요약
바위와 연못으로 이루어진 원형 문자열이 주어질 때, 어떤 바위에서 시작해 K칸씩 점프하는 동안 바위만 밟게 되는 K의 개수를 센다.
난이도

어려움10점 중 8점

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

문제

개구리 폭은 닐로고니아에서 열리는 세계 개구리 점프 대회에 나가려고 한다. 대회에서 각 개구리는 따로 만든 경기장에서 곡예 점프를 연달아 해내야 한다. 경기장은 원둘레를 따라 같은 간격으로 놓인 NN개의 자리로 이루어지고, 이웃한 두 자리 사이의 호 길이는 모두 같다. 각 자리는 바위이거나 연못이다. 자리에는 시계 방향으로 00번부터 N−1N-1번까지 번호가 붙어 있어서, 심판은 어느 자리에서 점프가 이루어졌는지 기록한다. 00번 자리는 11번 자리와 N−1N-1번 자리에 이웃한다.

대회 규칙에 따르면 점프 순서는 바위에서 시작해 항상 바위에서 다른 바위로 이어지고, 출발한 자리에서 끝나야 한다. 경기장의 바위를 모두 쓸 필요는 없다.

폭은 대회를 앞두고 연습하는 중이다. 연습을 시작할 때마다 출발할 바위 하나와 11 이상 N−1N-1 이하인 정수 점프 거리 KK를 고른다. ii번 바위에 서 있으면 다음 점프의 목표는 (i+K)(i+K)를 NN으로 나눈 나머지 번호의 자리다. 출발한 바위에 다시 착지하면 그 연습이 끝난다. 연못이나 표시된 자리 밖에 착지하면 실격이므로, 착지하는 자리는 모두 바위여야 한다. 예를 들어 경기장에 자리가 3개 있고 모두 바위일 때 폭이 00번에서 출발하며 K=2K = 2를 고르면 00번에서 22번으로, 다시 11번으로, 마지막에 00번으로 돌아오고 연습이 끝난다.

NN개 자리의 상태가 주어질 때, 어느 바위에서든 출발할 수 있다고 하고 폭이 연습에 고를 수 있는 서로 다른 KK 값이 몇 개인지 구하라.

입력

첫째 줄에 길이가 NN인 문자열 SS가 주어진다 (3≤N≤1053 \le N \le 10^5). SS의 ii번째 문자 (i=0,1,…,N−1i = 0, 1, \dots, N-1)는 ii번 자리의 상태를 나타내고, R이면 바위, P이면 연못이다.

출력

폭이 연습에 고를 수 있는 서로 다른 점프 거리의 개수를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    RRR
    
    예상 출력
    2
    
  2. 예제 2

    입력
    RRPR
    
    예상 출력
    1
    
  3. 예제 3

    입력
    PRP
    
    예상 출력
    0