#D0944. 连线时刻

连线时刻

题目描述

小 D 有一张 n×nn\times n 的数字卡。卡上恰好写着 11 到 n2n^2,每个数字出现一次。主持人也会按某个顺序把这 n2n^2 个数字各喊一次;每喊一个数字,小 D 就划去卡上对应的格子。

如果某一整行、某一整列或从左上到右下、从右上到左下的整条对角线都已划去,就形成一条线。每条线只计一次;同一个格子可能同时属于一行、一列和两条对角线。求第一次达到至少三条线时,这是主持人喊出的第几个数字。

输入格式

第一行一个整数 nn。

接下来 nn 行,每行 nn 个整数,表示数字卡。

最后一行 n2n^2 个整数,表示喊号顺序。

输出格式

输出一个整数,表示首次达到至少三条完整线时的喊号序号,从 11 开始编号。

样例

3
1 2 3
4 5 6
7 8 9
1 2 3 4 5 6 7 8 9
7
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1 2 3 4 13 14 15 16 6 11 5 7 8 9 10 12
10
3
2 9 4
7 5 3
6 1 8
2 9 4 7 5 3 6 1 8
7

样例解释

样例 1 中,前 66 个叫号完成前两行;第 77 个叫号划去 77,第一列和右上至左下的对角线也同时完成,因此线数从 22 变成 44,答案仍是 77。

样例 2 中,前 44 个叫号完成第一行,第 88 个叫号完成第四行,第 1010 个叫号划去 1111 后完成从左上到右下的对角线,成为第三条线。

样例 3 中,前 66 个叫号完成前两行;第 77 个叫号划去 66 后完成第一列和从右上到左下的对角线。

数据范围与约定

子任务 分值 限制
11 3030 3≤n≤1003\le n\le100
22 7070 3≤n≤5003\le n\le500

数字卡和喊号顺序各是 1,2,…,n21,2,\ldots,n^2 的一个排列,因此一定会出现三条线。对于 100%100\% 的数据,3≤n≤5003\le n\le500;子任务范围按表格给出。