十字の壁がそそり立つ世界の中を君は螺旋状に歩く   横へな 2015.2.7 問題

問題

世界はマス目に区切られている。
そこには十字型の壁がある。壁の厚みは1マス。東西南北に伸びている。
君は、壁が交わっているマスの北東の隣のマスにいる。
君は、世界のことを調べるために旅に出る。壁の周りを時計回りに回る。
移動は、東西南北いずれかの方向のみ。できるだけ柱から離れないように動くんだけど、一度訪れたことがあるマス目には二度と入らない。
一日にひとマス進む。

で。
入力として、北・東・南・西 方向の壁の長さ(図の、n, e, s, w)と、君が旅をした日数 d を与える。
君は d 日の旅を終えている。次の日、君がどちらに進むべきなのかを求めよ。

入力

入力は
2,3,5,4:85
こんな感じ。コロンの前の四つの数字は、壁の形。順に、北・東・南・西。コンマ区切り。
すべて正の整数。普通に十進数で。
コロンの後は、日数。普通に十進数で。

出力

d 日経過後に進む方向を出力する。出力するべき文字と進むべき方向の対応は下表の通り:

方向 西
出力する記号 N E S W

というわけで、出力は S こんな感じ。

追加問題

1時間で解けるような気はあんまりしないんだけど、時間が余っちゃった人のために追加問題を用意した。
いつものような、テストデータがある形ではなく、出力を問う形。

以下の入力に対する出力は?

補足

サンプルデータ

# 入力 期待
0 2,3,5,4:85 S
1 1,2,3,4:1 E
2 1,2,3,4:2 S
3 1,2,3,4:3 S
4 1,2,3,4:4 W
5 1,2,3,4:27 E
6 1,2,3,4:63 E
7 1,2,3,4:40 W
8 1,4,3,2:40 S
9 3,3,3,3:30 S
10 3,3,3,3:31 E
11 3,3,3,3:32 E
12 3,3,3,3:70 S
13 3,3,3,3:71 E
14 3,3,3,3:72 E
15 1,1,1,1:7 N
16 1,2,1,1:7 W
17 1,6,1,1:7 S
18 1,8,1,1:7 E
19 1,1,1,1:30 N
20 1,2,1,1:30 W
21 1,5,1,1:30 S
22 1,8,1,1:30 E
23 9,9,9,9:99 W
24 5,6,3,8:3 E
25 5,8,1,1:11 W
26 2,8,1,2:18 S
27 3,2,3,1:20 N
28 3,3,8,1:28 N
29 2,5,1,2:32 E
30 2,5,1,6:33 E
31 1,2,5,7:34 N
32 3,6,5,6:36 E
33 6,2,8,1:39 S
34 3,1,2,3:41 W
35 1,1,3,4:45 W
36 1,3,1,2:46 N
37 4,4,4,4:49 W
38 3,1,4,4:55 N
39 6,6,2,1:56 W
40 3,2,1,2:59 S
41 2,7,7,1:60 S
42 3,1,1,1:63 N
43 4,6,4,1:78 E
44 7,5,3,6:79 W
45 7,8,3,1:81 E
46 3,2,5,2:82 S
47 1,1,3,4:84 N
48 7,4,1,5:88 S
49 3,6,5,3:89 S
50 1,4,2,3:92 N
51 1,3,4,5:93 W
52 2,4,8,1:94 W
53 3,6,1,7:99 S

C/C++/Java 用のテストデータ