#P2217. 环岛旁边(roundabout)
环岛旁边(roundabout)
题目描述
Rainbow 和 Freda 在掷骰子的时候 rp 爆发,居然掷出了满点(其实我就不说所有的a[i]都是 1),顺利到达了环岛旁。它们正观察着这个环岛的时候,环岛居然开口说话了 T_T:欢迎来到魔界环岛。我会告诉你们环岛的运行方式,并且邀请你们帮我解决一个问题。环 岛在东西南北四个方向分别有一个入口和出口,环岛内的车辆逆时针行驶。车辆可以进入、离开或环岛或者在环岛内行进一步,这三种操作每次都是耗时 1 秒。在环岛内行进一步,即从东走到北,从北走到西,从西走到南或者从南走到东(换句话说,行进两步就可以围绕环岛走半圈了)。如果操作不互相干扰,所有车辆的操作可以同时进行。比如,环岛上有两辆车,一辆在另一辆的后面,它们可以一起在环岛内行进一步。一辆车是否进入环岛取决于它们这一秒是否可以进入,如果此时可以进入,它一定会进入,否则就将加入或者停留在该方向的等待序列中。
什么时候一辆车可以进入环岛呢?这取决于它上一秒得到的信息。如果第 i-1 秒时,它所在方向的顺时针紧邻方向的环岛上和等待序列里面都没有车,而且它是所在方向等待序列的第一辆车,那么它在第 i 秒可以进入环岛。特别地,四个方向的等待序列里都有车的时候,北面的车优先行驶——即只要第 i-1 秒时东面环岛上没有车,第 i 秒的时候,北面等待的第一辆车就可以进入环岛了。当然,每个车辆都有一个目标方向,一旦一辆车 A 到达了目标方向,它就会马上离开环岛的。注意,如果此时它的目标方向有另一辆车 B 在等待进入环岛且 B 车此时可以进入环岛,A车离开环岛和 B 车进入环岛是发生在同一秒的。
“我将给你们每秒车辆到达环岛旁的信息,请你们帮我计算,最后一辆车离开环岛的时间 好吗?”
输入格式
四行,每行一个字符串。
第一行一个字符串 N,只含有‘-’,‘S’,‘W’,‘E’四种字符,字符串的第 i 个字符 N[i] 表示第i-1秒的时候,有一辆来自北方向、目标方向为N[i]的车等待进入环岛,如果N[i]=’-', 表示第 i-1 秒没有车来自北方向。
第二行一个字符串 E,只含有 ‘-’,‘S’,‘W’,‘N’四种字符,含义同上。
第三行一个字符串 S,只含有 ‘-’,‘N’,‘W’,‘E’四种字符,含义同上。
第四行一个字符串 W,只含有 ‘-’,‘S’,‘N’,‘E’四种字符,含义同上。
对于字符串中的字符,N 表示北方向,E 表示东方向,W 表示西方向,S 表示南方向。
输出格式
一行一个整数 totalTime,表示最后一辆车离开环岛的时间。
样例输入 1
--
--
WE
-S
样例输出 1
6
样例输入 2
ES
N
E
--
样例输出 2
9
样例解释
样例 1 如图所示:
数据范围与约定
对于 50%的数据,每个字符串长度<=10.
对于 100%的数据,0<每个字符串长度<=100