만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

경로와 직선 사이의 넓이

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

요약
위와 오른쪽 이동으로 이루어진 단조 경로가 주어질 때, 경로와 시작점에서 끝점을 잇는 직선 사이의 넓이를 모두 더해 구한다.
난이도

보통10점 중 6점

유형
기하, 누적 합, 수학, 구현
정답자
아직 제출이 없습니다

문제

평면 위에서 원점을 출발해 위쪽 또는 오른쪽으로만 이동할 수 있는 경로를 생각한다. 경로는 'U'와 'R'로만 이루어진 문자열로 나타낸다. 'U'는 위로 한 칸, 'R'은 오른쪽으로 한 칸 움직인다는 뜻이다. 아래 그림은 문자열 RRRURRUUURRRRRUUR가 나타내는 경로를 굵은 선으로 그린 것이다.


그림 1: 2차원 경로의 예

이제 원점과 경로의 끝점을 잇는 직선을 긋는다. 위 그림에서 점선으로 그린 선이다. 이 직선과 경로 사이에 놓인 넓이의 합을 구하라. 위 그림에서 회색으로 칠한 부분이다.

경로가 직선을 여러 번 가로지르면 나뉘어 생긴 영역의 넓이를 모두 더한다. 경로가 'R'로만 이루어졌거나 'U'로만 이루어졌으면 직선이 경로와 겹치므로 넓이는 00이다.

입력

입력은 테스트 케이스 하나 이상으로 이루어진다. 각 테스트 케이스는 한 줄에 하나씩 주어진다. 한 줄은 'U' 또는 'R' 한 개 이상으로 이루어진 경로 문자열 뒤에 문자 'S'를 붙인 형태다.

입력에 나오는 모든 경로는 1000×10001000 \times 1000 격자 안에 그릴 수 있다. 즉 경로 하나에 들어 있는 'R'의 개수와 'U'의 개수는 각각 10001000 이하다.

입력의 마지막 줄은 'S' 한 글자뿐이며 테스트 케이스가 아니다.

출력

테스트 케이스마다 넓이를 한 줄에 출력한다. 소수점 아래 넷째 자리에서 반올림해 셋째 자리까지, 항상 세 자리를 채워서 출력한다.

예제3

  1. 예제 1

    입력
    RRRURRUUURRRRRUURS
    RUURS
    S
    
    예상 출력
    8.515
    1.000
    
  2. 예제 2

    입력
    RS
    US
    RUS
    URS
    RRUUS
    UURRS
    S
    
    예상 출력
    0.000
    0.000
    0.500
    0.500
    2.000
    2.000
    
  3. 예제 3

    입력
    RRRRRUUUUUS
    RUUUUURRRRS
    RRRRUUUUURS
    URURURURURS
    RRUURRUURRS
    S
    
    예상 출력
    12.500
    8.500
    8.500
    2.500
    3.333