#CF1986G2. 排列问题(困难版)
排列问题(困难版)
G2. 排列问题(困难版)
时间限制:3 秒
内存限制:128 兆字节
这是该问题的困难版本。唯一的区别在于,在此版本中 且所有输入数据的 之和不超过 。
给定一个长度为 的排列 。计算满足以下条件的下标对 的个数: 能被 整除。
排列是一个由 个整数组成的序列,其中 到 的每个整数恰好出现一次。例如,、、 是排列,而 、、 不是。
输入
每个测试包含多组输入数据。第一行包含一个整数 ()——输入数据的组数。接下来是各组数据的描述。
每组数据的第一行包含一个整数 ()——排列 的长度。
第二行包含 个互不相同的整数 ()——排列 。
保证所有输入数据的 之和不超过 。
输出
对于每组输入数据,输出满足条件 能被 整除的下标对 的个数。
示例
输入
6
1
1
2
1 2
3
2 3 1
5
2 4 1 3 5
12
8 9 7 12 1 10 6 3 2 4 11 5
15
1 2 4 6 8 10 12 14 3 9 15 5 7 11 13
输出
0
1
1
3
9
3
注释
在第一组输入数据中,没有下标对,因为排列长度为 。
在第二组输入数据中,有一个下标对 且它满足条件。
在第三组输入数据中,下标对 满足条件。
在第四组输入数据中,满足条件的下标对为 、 和 。