#P1763. Shortcut
Shortcut
本题没有可用的提交语言。
题目描述
Mirek每天从家到大学有一条固定路线,这条路线由若干段组成,每段都是10米长的直线段。每段要么是前一段的直线延伸,要么与前一段垂直。走完每段后,Mirek会稍作休息,欣赏自然美景。在行走过程中,他从不重复经过同一地点。
昨晚Mirek熬夜参加派对,今天起床晚了。他知道如果不改变往常的路线,就会错过第一堂课。他计划只做一次捷径,但希望这个捷径尽可能短(其实他只是想安抚自己的良心)。捷径必须是连接路线中两个休息点的水平或垂直线段。
请帮助Mirek找到最短的捷径。
任务
编写一个程序:
- 读取Mirek的路线。
- 计算路线上的最短捷径。
- 输出结果。
输入格式
输入的第一行包含一个整数n(3 ≤ n ≤ 250000),表示路线的段数。第二行包含一个由n个字符N、E、S或W组成的序列,字符间无空格。每个字符表示路线的其中一段:N表示向北走10米,E表示向东走10米,S表示向南走10米,W表示向西走10米。可以保证给定路线上至少存在一条捷径。
输出格式
输出的第一行也是唯一一行包含四个部分:整数l、b、e和字符d,用单个空格分隔。整数l表示最短捷径的长度(以10米为单位)。整数b和e分别表示捷径起点和终点的休息点编号(休息点从0开始编号,0表示家,n表示大学)。字符d表示捷径的方向。如果存在多条最短捷径,输出起点最早的那条;如果起点相同,输出终点最远的那条。
输入样例1
12
NNNENNWWWSSW
输出样例1
2 3 11 W
来源
Central Europe 2003