题目描述
有一个无向图,有 N2 个顶点。初始时,图中没有边。对于每一对满足 0≤i,j<N 的整数 (i,j),图中有一个对应的顶点称为 (i,j)。
你将会得到 Q 个查询,它们需要按顺序处理。第 i 个查询给出四个整数 ai,bi,ci,di,如下所示。
- 对于每个 k (0≤k<N),在两个顶点 ((ai+k)modN,(bi+k)modN) 和 ((ci+k)modN,(di+k)modN) 之间添加一条边。然后,打印图中当前连接组件的数量。
约束条件
- 2≤N≤2×105
- 1≤Q≤2×105
- 0≤ai,bi,ci,di<N
- (ai,bi)=(ci,di)
- 输入中的所有值均为整数。
输入
输入以标准格式给出,格式如下:
N Q
a1 b1 c1 d1
a2 b2 c2 d2
⋮
aQ bQ cQ dQ
输出
输出 Q 行。第 i 行应该包含图在第 i 个查询时连接组件的数量。
示例输入 1
3 3
0 0 1 2
2 0 0 0
1 1 2 2
示例输出 1
6
4
4
第一个查询在 (0,0),(1,2)、(1,1),(2,0) 和 (2,2),(0,1) 之间添加了边,使得连接组件的数量从 9 变为 6。
示例输入 2
4 3
0 0 2 2
2 3 1 2
1 1 3 3
示例输出 2
14
11
11
查询后的图可能不是简单图。
示例输入 3
6 5
0 0 1 1
1 2 3 4
1 1 5 3
2 0 1 5
5 0 3 3
示例输出 3
31
27
21
21
19