#43876. n 子棋
n 子棋
暂无测试数据。
小 A 和小 B 在玩 $n$ 子棋, $n$ 子棋游戏的规则是,两人在一个左上角是 $(1,1)$,右下角是 $(n,n)$ 的 $n \times n$ 棋盘中交替落子,只要有一方的 $n$ 个棋子在同一行或者同一列或者同一条对角线上,对方就输了。
游戏由小 A 先手,一共进行了 $m$ 回合,请你来当裁判,帮他们裁定胜负。
游戏结束的条件是:
- 出现胜负;
- 所有回合结束。
一旦满足上述任意一个条件,游戏立即结束,后续回合无效。
输入格式
第一行两个整数 $n,m$ ,表示棋盘大小和回合数。
接下来 $m$ 行,每行两个数 $x,y$,表示当前轮到的人会在第 $x$ 行第 $y$ 列放一个棋子。
输出格式
输出一行,包含一个整数 $x$ ,表示游戏结束的回合,和一个字符串 $S$ 表示游戏结果,用一个空格隔开。
若小 A 赢了 $S$ 为"milk!"
;小 B 赢了 $S$ 为"juice!"
;否则 $S$ 为"drawn!"
。
数据规模与约定
对于前 $10\%$ 的数据,保证 $n=1$;
对于前 $30\%$ 的数据,保证 $1\leq n \leq 2$;
对于前 $70\%$ 的数据,保证 $1\leq n \leq 50$;
对于前 $90\%$ 的数据,保证 $1\leq n\leq 500$;
对于 $100\%$ 的数据,保证 $1\leq n\leq 10^5, 0\leq m \leq \min(3\times 10^5, n^2)$。
保证最初棋盘是空的且游戏结束前所有操作均合法。
2 4
1 1
2 2
2 1
1 2
3 milk!
5 0
0 drawn!