3694 - 时钟
描述

有 N 个时钟,每个时钟有 M 个指针,P 个刻度。时钟是圆形的,P 个刻度均分整个圆。每个时钟每个指针指向整数刻度,并且每个时钟自身指针指向的数字都不同。你可以任意旋转时钟的表盘,但是不能转指针。问最后有多少对时钟可以变成相同的状态。
例如 N=5, M=2, P=4,5 个时钟数据为 {1,2} {2,4} {4,3} {2,3} {1,3},经过旋转后 (1,3)、(1,4)、(2,5)、(3,4) 相同,共 4 对。

输入

第 1 行:3 个数 N, M, P,用空格分隔。N 为时钟数量,M 为指针数量,P 为刻度数量(1 <= M, N <= 500, 1 <= P <= 10^9, M <= P)。
第 2 ~ N+1 行:每行 M 个数,对应一个时钟 M 个指针的位置。

输出

输出有多少对时钟是相同的。

样例

输入

5 2 4
1 2
2 4
4 3
2 3
1 3

输出

4
提示

把每个时钟指针排序后转化为相邻指针(含首尾绕回)的间隔序列;两时钟可旋转相同 等价于 间隔序列互为循环移位。用最小表示法规范化间隔序列,再统计相同者配对数。

来源
51nod 1282
标签
题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 0
通过次数 0