#P10870. [HBCPC2024] Genshin Impact Startup Forbidden II(加强版)

    ID: 19899 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度提高 上传者: 标签>并查集2024O2优化省赛/邀请赛湖北

[HBCPC2024] Genshin Impact Startup Forbidden II(加强版)

题目描述

Blue-edged Shot 被 LeavingZ 禁止玩《原神》,于是她转向了围棋游戏。

一局围棋涉及两名玩家,一名使用黑子,另一名使用白子。两名玩家轮流下棋,黑子先行。围棋棋盘由 100×100100\times 100 的交叉点组成,我们用 (x,y)(x,y) 表示第 xx 行第 yy 列的交叉点。棋子放置在交叉点上。左上角为 (1,1)(1,1),右下角为 (100,100)(100,100)。

当且仅当 ∣x1−x2∣+∣y1−y2∣=1|x_1-x_2| + |y_1-y_2| = 1 时,交叉点 (x1,y1)(x_1,y_1) 和 (x2,y2)(x_2,y_2) 是相邻的。具有相同颜色的相邻交叉点上的棋子属于同一组棋子。一个棋子的「气」的数量等于该棋子所在交叉点的相邻交叉点上没有棋子的数量。一个棋子组的气等于该组中所有棋子的气之和。气为零的棋子组被视为死棋,必须从棋盘上移除。

注意,在黑棋下子后,优先移除任何死去的白棋,然后重新计算黑棋的气。这是因为可能会出现这样的情况:在黑棋下子后,黑棋和白棋都没有气,但移除死去的白棋会增加黑棋的气。对于白棋,处理方式类似。在白棋下子后,优先移除任何死去的黑棋,然后重新计算白棋的气。

现在有一局围棋,从空棋盘开始,两名玩家共下了 mm 步棋。给出每步棋的放置位置,输出每步棋后因该步棋而被移除的黑棋和白棋的数量。显然,黑棋在奇数步下,白棋在偶数步下。保证棋子放置在空的交叉点上。注意,棋子可以放置在当前没有棋子的任何\textbf{任何}交叉点上,无论是否违反现实中的围棋规则。

输入格式

输入 mm (1≤m≤5×105)1 \le m \le 5\times 10^5) 行,第 ii 行包含两个整数 xi,yix_i,y_i (1≤xi,yi≤1001 \le x_i,y_i \le 100),表示第 ii 步棋子放置在 (xi,yi)(x_i,y_i)。

保证棋子放置在当前没有棋子的交叉点上。

输出格式

输出 mm 行,每行包含两个整数。第 ii 行的第一个整数表示第 ii 步后被移除的黑棋数量,第二个整数表示被移除的白棋数量。

8
2 1
1 1
1 2
2 2
1 1
1 3
2 3
3 1
0 0
0 0
0 1
0 0
0 0
0 0
0 0
3 0

提示

(由 ChatGPT 4o 翻译)