허용 가능한 지도
시간 제한3초메모리 제한512 MB
U, L, D, R로 이루어진 문자열에서 행 단위로 격자에 채웠을 때 화살표가 격자 안에서 사이클만 이루는 부분 문자열의 개수를 구합니다.
문제
지도는 U, L, D, R 기호로 이루어진 행렬이다.
지도 행렬 의 지도 그래프는 개의 정점을 가진 방향 그래프다. 정점은 ()로 번호가 매겨지며, 은 행의 수, 은 열의 수다. 이 그래프에는 개의 간선이 있고, 간선은 로 정해진다. 여기서 , , , 이다. 모든 간선이 그래프 안의 유효한 정점을 가리키면 지도 그래프가 유효하다고 한다.
허용 가능한 지도는 지도 그래프가 유효하고 사이클들의 집합으로 이루어진 지도다.
지도 의 설명은 모든 행을 이어 붙인 문자열 이다.
문자열 가 주어진다. 의 부분 문자열 중 어떤 허용 가능한 지도의 설명이 될 수 있는 것의 개수를 구하라. 부분 문자열은 두 인덱스 , (, 은 의 길이)로 정해지며 와 같다. 문자열이 같더라도 가 다르면 서로 다른 부분 문자열이다.
입력
입력은 한 줄이며, 길이가 1 이상 20,000 이하인 문자열 가 주어진다. 각 문자는 U, L, D, R 중 하나다.
출력
허용 가능한 지도의 설명이 될 수 있는 의 부분 문자열 개수를 한 줄에 출력한다.
힌트
첫 번째 예시에서는 허용 가능한 지도의 설명이 되는 부분 문자열이 두 개다. RDUL을 행렬로 본 경우 (그림 1)와 DU를 행렬로 본 경우 (그림 2)다.

두 번째 예시에서는 조건을 만족하는 부분 문자열이 없다. 예를 들어 RDRU를 행렬로 보면 결과 그래프가 사이클들의 집합이 아니다 (그림 3).

세 번째 예시에서는 RL 3개, RLRL 2개, RLRLRL 1개가 조건을 만족한다. 일부 문자열은 여러 방식으로 행렬이 될 수 있다. 예를 들어 RLRLRL은 행렬 (그림 4)로도, 행렬 (그림 5)로도 볼 수 있다.
