1233. 笨笨的纸条传递

时间限制 1000 ms   内存限制 128 MB

笨笨上着自习课,自习课是不允许同学们讲话的,但没说不给传纸条啊~but,传纸条被老师看见就OVER了。 笨笨把要说的话写在了纸条上,课室里的每个同学看这张纸条的时间是已知的。 自习课会有老师来巡堂,纸条不能被老师发现。 教学楼的东西两头各有一条楼梯,老师会从$1$楼的任意一边开始巡堂,巡完一层楼就从另一边楼梯上楼 (也就是说,如果老师从$2$楼东边楼梯上来,就从$2$楼西边楼梯往$3$楼爬,再从$3$楼东边楼梯往$4$楼爬,爬楼路线为S形), 一层一层地巡。 笨笨和他的同学们各自都只知道自己前后左右同学看这张纸条所需的时间,他们会挑需时最少的并且没看过纸条的同学传, 如果四个方向的同学所需时间有一样的就按前 $\to$ 右 $\to$ 后 $\to$ 左的顺序优先传递。 最后一个看纸条的同学会把纸条扔进垃圾桶(个个都是神投手?!),如果周围的人都看过纸条,纸条传不出去,也会把纸条扔进垃圾桶。 笨笨想知道在老师来到他们课室前,纸条能传给多少个人,以及老师来之前最后收到纸条的人坐在第几行第几个。

输入数据

第一行$2$个数$k_1,k_2(0 \lt k_1,k_2 \le 30)$,表示有$k_1$行同学,每行$k_2$个人。
接下来$k_1$行,每行$k_2$个数,表示$a[k_1,k_2](a[k_1,k_2] \lt maxint)$这个同学看纸条所要的时间,笨笨用0表示。
第$k_1+2$行$2$个数$l_1,l_2(0 \lt l_1,l_2 \le 30)$,表示有$l_1$层楼,每层有$l_2$间课室,笨笨所在课室用0表示。
接下来$l_1$行,每行$l_2$个数,表示从楼顶到$1$楼各个教室老师巡查所要用的时间。
最后一行一个数100表示老师从西边开始巡查,1表示从东边开始巡查。

输出数据

第一行是所能看到纸条内容的人数,如果是传不出去的话就输出Error!
第二行是最后一个收到纸条的人的坐标,表示方式:第$X$行+','+第$Y$个。

样例输入

复制
Input 1:
3 3
2 3 4
1 0 5
8 7 6
3 3
9 0 9
8 8 8
8 8 8
0

Input 2:
3 3
0 1 3
2 1 1
5 5 5
2 2
0 5
5 5
1     ·  \n
 · \n
 · · \n
 · · \n
 · · \n
 · \n
 · · \n
 · · \n
 · · \n
 \n
\n
     ·  \n
 · \n
 · · \n
 · · \n
 · · \n
 · \n
 · \n
 · \n
 \n

样例输出

复制
Output 1:
9
3,1

Output 2:
Error!
1,3      ·  \n
 \n
   \n
\n
      ·  \n
      \n
   \n

样例说明

最后拿到纸条的同学会在老师出现的那一刹那把纸条扔到垃圾桶里。

【样例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$)。

提交

请先 登录

Source

笨笨原创。

© 2026 FAQs Contact About