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

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

터틀 그래픽스

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

요약
방향과 숫자로 주어지는 이동을 격자에 그리면서 생기는 고리와 겹침을 바로 지우고 남은 구간의 개수와 전체 길이를 구합니다.
난이도

보통10점 중 6점

유형
시뮬레이션, 스택, 해시맵, 기하
정답자
아직 제출이 없습니다

문제

컴퓨터 키보드로 모니터 화면에 그림을 그리려고 한다. 그리려는 그림은 수평 선분과 수직 선분만으로 이루어진 꺾은선(폴리라인)이다. 그림을 그리려면 키를 차례로 눌러야 하며, 키 입력은 방향 키와 숫자 키의 쌍으로 이루어진다. 방향 키는 N, S, E, W 네 개이고 각각 북(North), 남(South), 동(East), 서(West)를 뜻한다. 숫자 키는 0부터 9까지 열 개이다.

처음에 커서는 화면 중앙에 있다. 예를 들어 S4를 누르면 현재 커서 위치에서 남쪽으로 길이 4인 수직 선분을 그리고 커서는 그 선분의 끝점으로 이동한다. 이어서 E3을 누르면 새 커서 위치에서 동쪽으로 길이 3인 수평 선분을 그린다. 따라서 입력 S4E3은 L자 모양의 꺾은선을 그린다.

프로그램은 꺾은선을 항상 단순하게(simple) 유지한다. 즉, 꺾은선에는 닫힌 고리(사이클)나 서로 겹치는 선분이 생기지 않는다. 그림을 그리는 도중에 고리나 겹침이 나타나면 프로그램은 즉시 그것을 제거한다.

예를 들어 E6S2W5S2E2N7에서는 마지막 선분이 기존 꺾은선과 두 점에서 만난다. 선분을 그리는 순서대로 먼저 점 pp에서, 그다음 점 qq에서 교차한다(그림 1). 프로그램은 먼저 pp에서 생긴 고리를 제거하고, 이어서 qq에서 생긴 고리를 제거한다. 그 결과 남는 꺾은선은 E3N3으로 그린 것과 같다. E4S2W3S2E6N6W4S7에서는 첫 번째 교차점에서 생긴 고리를 제거하면 나머지 교차도 함께 사라져(그림 2(a)) E3S5로 그린 것과 같은 꺾은선이 남는다. 그림 2(b)처럼 N5S9는 S4와 같은 꺾은선을, N9S5는 N4와 같은 꺾은선을 남긴다.

그림 1

그림 1: 입력 E6S2W5S2E2N7 (a는 화면의 중앙)

그림 2

그림 2: 그리기 예시 (a는 화면의 중앙)

키 입력의 수열이 주어질 때 최종적으로 남는 꺾은선을 구하는 프로그램을 작성하라. 화면은 그림 전체를 담을 수 있을 만큼 충분히 크다고 가정해도 된다.

입력

입력은 표준 입력으로 주어진다. 첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어지는 TT개의 줄에는 각각 한 개의 테스트 케이스가 문자열 d1f1d2f2⋯dnfnd_1 f_1 d_2 f_2 \cdots d_n f_n 형태로 주어진다. 여기서 각 did_i는 N, S, E, W 중 하나이고, 각 fif_i는 0부터 9까지의 한 자리 숫자이며, 1≤n≤50001 \le n \le 5000이다.

출력

각 테스트 케이스마다 한 줄에 두 정수 mm과 LL을 출력한다. mm은 최종 꺾은선을 이루는 선분의 개수이고, LL은 그 꺾은선의 전체 길이(모든 선분 길이의 합)이다. 한 직선 위에서 이어지는 인접한 조각들은 하나의 선분으로 센다.

예제3

  1. 예제 1

    입력
    5
    E6S2W5S2E2N7
    E4S2W3S2E6N6W4S7
    N5S9
    E8S4W4N4E8
    E5S5W5N5
    
    예상 출력
    2 6
    2 8
    1 4
    1 12
    0 0
    
  2. 예제 2

    입력
    1
    S4E3
    
    예상 출력
    2 7
    
  3. 예제 3

    입력
    1
    E6S2W5S2E2N7
    
    예상 출력
    2 6