만드는 중입니다

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

(빠른) 숲속 산책

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

요약
격자 모양 산책로의 교차점과 통행 횟수 제한이 주어질 때, 규칙에 따라 Brice의 산책을 시뮬레이션하고 산책이 끝나는 교차점의 좌표를 구합니다.
난이도

보통10점 중 5점

유형
시뮬레이션, 그래프, 구현
정답자
아직 제출이 없습니다

문제

브라이스 빌슨은 가까운 숲인 Orthogonal Woods에서 조깅하기를 좋아한다. 이 숲은 모든 길이 양방향이고 직각 격자를 따라 놓여 있으며, 모든 굽이가 90도여서 이런 이름이 붙었다. 브라이스는 조깅에 대해 조금 까다로워서, 두 개 이상의 길이 만나는 교차점에 이를 때마다 정해진 규칙을 따른다. 규칙은 다음과 같다.

  1. 남은 갈래가 세 개이면 가운데 길을 택한다.
  2. 남은 갈래가 두 개뿐이면 왼쪽 길을 택한다.
  3. 택할 갈래가 없으면 조깅을 끝내고 가장 가까운 출구로 걸어간다.

브라이스는 다른 면에서도 까다롭다. 그는 각 길마다 "관심도"라는 양의 정수를 매겨 두었다. 관심도는 그 길을 달리는 재미가 얼마나 큰지를 나타내며, 값이 클수록 재미있는 길이다. 길의 관심도가 nn이면 브라이스는 조깅 중에 그 길을 최대 nn번만 지난다. nn번째 통과 이후에는 그 길이 브라이스에게 없는 것으로 취급된다. 예를 들어 그 길을 포함하던 세 갈래 교차점은 두 갈래 교차점이 되고, 두 갈래 교차점은 한 갈래 교차점이 된다. 그림 L.1에 예가 나와 있다.

그림 L.1: 샘플 입력 1에 해당하는 공원

브라이스가 왼쪽 그림의 교차점 D에서 북쪽을 향해 공원에 들어간다고 하자. 각 길 옆의 숫자는 관심도다. 그는 경로 DFGCBADFGCBA를 따라 이동하고, 이때 A와 B를 잇는 길은 두 번 지나서 제거된다. 오른쪽 그림은 갱신된 관심도와 이 제거된 길을 보여 준다. 교차점 A에서 브라이스는 경로 ADFGCBEDA를 따르며, 막다른 곳에 이르러 조깅을 끝낸다.

입력

첫 줄에는 교차점의 수 nn과 교차점 사이의 길의 수 mm이 주어진다(2≤n≤2 5002 \leq n \leq 2\,500). 다음 줄에는 교차점의 위치를 나타내는 정수 쌍 nn개가 주어진다. 교차점은 입력된 순서대로 1부터 nn까지 번호가 매겨지며, 모든 위치 값 x,yx,y는 0≤x,y≤1060 \leq x,y \leq 10^6을 만족한다. 이어서 mm개의 줄에 각각 정수 ii jj kk(1≤i,j≤n1 \leq i,j \leq n, 1≤k≤1061 \leq k \leq 10^6)가 주어지며, 이는 교차점 ii와 jj를 잇고 관심도가 kk인 길이 있다는 뜻이다. 모든 길은 가로 또는 세로이며, 지정된 교차점 외의 다른 교차점에는 닿지 않는다. 마지막 줄에는 정수 ss(1≤s≤n1 \leq s \leq n)와 문자 d∈{N,S,E,W}d \in \{N,S,E,W\}가 주어진다. 이는 브라이스가 교차점 ss에서 방향 dd의 길을 택하며 조깅을 시작한다는 뜻이다. 교차점 ss에서 방향 dd로 향하는 길은 항상 존재한다.

출력

브라이스가 조깅을 끝내는 위치를 출력한다.

예제1

  1. 예제 1

    입력
    7 8
    0 0 5 0 12 0 0 5 5 5 0 10 12 10
    1 2 2
    2 3 4
    4 5 5
    6 7 8
    1 4 4
    2 5 7
    3 7 4
    4 6 6
    4 N
    
    예상 출력
    0 0