#P3090. [USACO13NOV] Empty Stalls G

[USACO13NOV] Empty Stalls G

题目描述

约翰的谷仓中有 N(2N3×106)N(2 \le N \le 3\times 10^{6}) 个房间,编号 00N1N-1,这些房间排布成环状,编号 00 的和编号 N1N-1 的相邻。

每天傍晚,奶牛们一只一只排队回到谷仓,每头奶牛都有一个喜欢的房间,但是,如果它喜欢的房间已被其他奶牛占了,它会向前挨个探索其他房间(如果它探索过了 N1N-1 号房间,它会继续探索 00 号房间,以此继续下去)直到探到第一个没有被占用的房间,这时它会宣布占用这个房间。

告诉你每头奶牛喜欢的房间,当所有奶牛都找到房间后,剩下的没被占用的房间中,编号最小的是哪个。很明显,问题的答案与奶牛进入谷仓的顺序无关。

为避免输入内容过多。本题的输入数据采用一种简洁的方式:一共 K(1K104)K(1 \le K \le 10^{4}) 行,每行格式如下:

X Y A BX\ Y\ A\ B

表示有 YY 批奶牛,每批 XX 头,也就是总共 X×YX\times Y 只奶牛喜欢的房间号。YY 批奶牛编号 11YY,第 iiXX 头奶牛喜欢的房间号为(A×i+B)modN(A \times i+B) \bmod N

AABB 的取值范围为 01090\dots 10^{9}

注意,只有 64M 的空间。

输入格式

第一行,两个用空格隔开的整数,NNKK

第二行到第 K+1K+1 行,每行包含四个整数 X,Y,A,BX,Y,A,B,解释看题目描述。牛的总数最多为 N1N-1 ,可以向同一个牛栏中添加牛。

输出格式

一行一个整数,表示最小的移动次数。

10 3 
3 2 2 4 
2 1 0 1 
1 1 1 7 

5 

提示

谷仓里有 1010 个牛栏,编号为 0099。输入的第二行表示有 33 头牛喜欢牛栏 (2×1+4)mod10=6(2 \times 1 + 4) \bmod 10 = 6,另有 33 头牛喜欢牛栏 (2×2+4)mod10=8(2 \times 2 + 4) \bmod 10 = 8。第三行表示有 22 头牛喜欢牛栏 (0×1+1)mod10=1(0\times 1 + 1) \bmod 10 = 1。第四行表示有 11 头牛喜欢牛栏 (1×1+7)mod10=8(1 \times 1 + 7) \bmod 10 = 8(所以总共有 44 头牛喜欢这个牛栏)。

除了牛栏 55 之外,其他所有牛栏最后都会被占用。