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

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

주머니는 얼마나 큰가 (Large)

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

요약
러닝렝스로 주어진 거북이 경로가 단순 폐곡선 다각형을 그릴 때, 동서 또는 남북으로 경계가 모두 있는 외부 점들의 넓이를 구한다.
난이도

어려움10점 중 8점

유형
기하, 시뮬레이션, 구현, 배열
정답자
아직 제출이 없습니다

문제

플랫랜드의 정직한 시민 폴리고노비치 교수는 평면의 격자점을 따라 걷기를 좋아한다. 아침에 원점에서 북쪽을 보고 출발하며, 하는 행동은 다음 세 가지뿐이다.

  • 'F': 앞으로 한 단위 길이만큼 이동한다.
  • 'L': 왼쪽으로 90도 돈다.
  • 'R': 오른쪽으로 90도 돈다.

하루가 끝나면(그렇다, 아주 긴 산책이다) 교수는 원점으로 돌아온다. 원점을 빼면 같은 점을 두 번 지나지 않으므로, 걸어온 경로는 다각형 하나를 둘러싼다. 아래 그림에서 다각형의 내부는 파란색이다. 점 xx, yy, zz, ww는 뒤에서 설명한다.

교수가 네 번보다 많이 돌면 이 다각형은 볼록하지 않다. 그래서 주머니가 생긴다.

주의! 이 문제에서 쓰는 주머니의 정의는 이미 아는 정의와 다를 수 있다.

다음 그림의 회색 영역이 이 다각형의 주머니다.

엄밀히 말하면, 점 pp가 다각형 내부에 있지 않고 다음 두 조건 중 적어도 하나를 만족하면 pp는 주머니에 속한다.

  • pp의 바로 동쪽과 바로 서쪽에 각각 경계점이 있다.
  • pp의 바로 북쪽과 바로 남쪽에 각각 경계점이 있다.

경계점은 교수가 산책하면서 지나간 점이며, 정수 좌표인 점만이 아니라 경로 위의 모든 점을 포함한다.

첫 번째 그림을 다시 보자. 점 xx는 첫 번째 조건을 만족하고, 점 zz는 두 번째 조건을 만족하며, 점 yy는 두 조건을 모두 만족한다. 세 점은 모두 주머니에 속한다. 점 ww는 주머니에 속하지 않는다.

교수의 산책이 주어진다. 주머니 전체의 면적을 구하라.

입력

첫째 줄에 테스트 케이스의 개수 NN이 주어진다. 이어서 테스트 케이스 NN개가 주어진다.

각 테스트 케이스는 산책 하나를 나타낸다. 먼저 정수 LL이 주어지고, 그 뒤에 "SS TT" 쌍이 LL개 온다. SS는 'L', 'R', 'F'로 이루어진 문자열이고, TT는 SS를 몇 번 반복하는지 나타내는 정수다.

즉, 테스트 케이스 하나의 입력은 다음과 같은 모양이다.

S1 T1 S2 T2 ... SL TL

행동의 순서는 S1S_1을 T1T_1개 이어 붙이고, 그다음에 S2S_2를 T2T_2개 이어 붙이고, 이런 식으로 계속한 것이다.

한 테스트 케이스의 쌍이 모두 같은 줄에 있지는 않다. 다만 문자열 SS가 여러 줄로 쪼개지지는 않는다. 첫 번째 예제의 두 번째 테스트 케이스가 이런 경우다.

제한

  • 1≤N≤1001 \le N \le 100
  • 1≤T1 \le T이며, TT의 상한은 아래 좌표 제한이 정한다.
  • 이어 붙인 경로에서 방향 전환이 두 번 연속으로 나오지 않는다. 즉 'LL', 'RR', 'LR', 'RL'은 나타나지 않는다. 경로에는 'F'가 적어도 하나 있다.
  • 경로는 끝을 빼면 자기 자신과 교차하지 않고, 원점에서 끝난다.
  • 1≤L≤10001 \le L \le 1000
  • 각 문자열 SS의 길이는 1 이상 32 이하다.
  • 교수는 좌표의 절댓값이 3000보다 큰 점을 지나지 않는다.

출력

각 테스트 케이스마다 Case #X: Y 형식으로 한 줄을 출력한다. XX는 1부터 시작하는 테스트 케이스 번호이고, YY는 주머니 전체의 면적이다. 이 면적은 항상 정수이므로 정수로 출력한다.

힌트

아래 그림은 첫 번째 예제에 있는 산책 두 개를 나타낸다.

예제3

  1. 예제 1

    입력
    2
    1
    FFFR 4
    9
    F 6 R 1 F 4 RFF 2 LFF 1
    LFFFR 1 F 2 R 1 F 5
    
    예상 출력
    Case #1: 0
    Case #2: 4
    
  2. 예제 2

    입력
    3
    1
    FRFRFRFR 1
    1
    LFRFRFRF 1
    7
    F 5 R 1 F 1 R 1 F 5 R 1 F 1
    
    예상 출력
    Case #1: 0
    Case #2: 0
    Case #3: 0
    
  3. 예제 3

    입력
    3
    40
    F 5 L 1 F 1 L 1 F 4 R 1 F 1 R 1 F 4 L 1 F 1 L 1 F 4 R 1 F 1 R 1 F 4 L 1 F 1 L 1 F 4 R 1 F 1 R 1 F 4 L 1 F 1 L 1 F 4 R 1 F 1 R 1 F 4 L 1 F 1 L 1 F 5 L 1 F 9 L 1
    24
    F 1 R 1 F 1 L 1 F 1 L 1 F 1 R 1 F 1 L 1 F 1 L 1 F 1 R 1 F 1 L 1 F 1 L 1 F 1 R 1 F 1 L 1 F 1 L 1
    28
    F 1 L 1 F 1 R 1 F 1 L 1 F 1 R 1 F 1 L 1 F 1 R 1 F 1 L 1 F 1 R 1 F 1 L 1 F 1 R 1 F 1 L 1 F 1 L 1 F 6 L 1 F 6 L 1
    
    예상 출력
    Case #1: 16
    Case #2: 0
    Case #3: 0