笨笨的纸条传递
测试数据来自 system/1503
描述
笨笨上着自习课,自习课是不允许同学们讲话的,但没说不给传纸条啊~but,传纸条被老师看见就OVER了。
笨笨把要说的话写在了纸条上,课室里的每个同学看这张纸条的时间是已知的。
自习课会有老师来巡堂,纸条不能被老师发现。
教学楼的东西两头各有一条楼梯,老师会从1楼的任意一边开始巡堂,巡完一层楼就从另一边楼梯上楼
(也就是说,如果老师从2楼东边楼梯上来,就从2楼西边楼梯往3楼爬,再从3楼东边楼梯往4楼爬,爬楼路线为S形),
一层一层地巡。
笨笨和他的同学们各自都只知道自己前后左右同学看这张纸条所需的时间,他们会挑需时最少的并且没看过纸条的同学传,
如果四个方向的同学所需时间有一样的就按前=>右=>后=>左的顺序优先传递。
最后一个看纸条的同学会把纸条扔进垃圾桶(个个都是神投手?!),如果周围的人都看过纸条,纸条传不出去,也会把纸条扔进垃圾桶。
笨笨想知道在老师来到他们课室前,纸条能传给多少个人,以及老师来之前最后收到纸条的人坐在第几行第几个。
格式
输入格式
第一行2个数k1,k2(0<k1,k2<=30),表示有k1行同学,每行k2个人。
接下来k1行,每行k2个数,表示a[k1,k2](a[k1,k2]<maxint)这个同学看纸条所要的时间,笨笨用0表示。
第k1+2行2个数l1,l2(0<l1,l2<=30),表示有l1层楼,每层有l2间课室,笨笨所在课室用0表示。
接下来l1行,每行l2个数,表示从楼顶到1楼各个教室老师巡查所要用的时间。
最后一行一个数1或0,0表示老师从西边开始巡查,1表示从东边开始巡查。
输出格式
第一行是所能看到纸条内容的人数,如果是传不出去的话就输出“Error!”。
第二行是最后一个收到纸条的人的坐标,表示方式:第X行+','+第Y个。
样例1
样例输入1
3 3
2 3 4
1 0 5
8 7 6
3 3
9 0 9
8 8 8
8 8 8
0
样例输出1
9
3,1
样例2
样例输入2
3 3
0 1 3
2 1 1
5 5 5
2 2
0 5
5 5
1
样例输出2
Error!
1,3
限制
1s以内出结果,否则笨笨会被巡堂老师抓住。
提示
最后拿到纸条的同学会在老师出现的那一刹那把纸条扔到垃圾桶里。
【样例1的解释】
笨笨所在的位置为(2,2),他会先传给(2,1)的那个同学。
现在纸条在(2,1)的手上,他花了1看纸条,然后又把纸条传给(1,1)的那个同学。
(1,1)把纸条传给(1,2),(1,2)传给(1,3),(1,3)传给(2,3)……
最后传到了(3,1)手上,(3,1)看完后时间还有多,所以有9个人看了纸条,最后在(3,1)手上。
【样例2的解释】
笨笨从(1,1)把纸条传给了(1,2),(1,2)把纸条传给了(2,2)。
接着(2,2)又把纸条传给了(2,3),(2,3)把纸条传给了(1,3)。
(1,3)看完后,他周围的同学已经看过了,所以他把纸条直接送入垃圾桶。
因为他并不是因为顺利传完把纸条扔进垃圾桶的,所以要输出"Error!",最后一个拿到纸条的是(1,3)。
来源
笨笨原创。