D. Divisible Pairs

time limit per test

2 seconds

memory limit per test

256 megabytes

Polycarp has two favorite integers x and y (they can be equal), and he has found an array a of length n.

Polycarp considers a pair of indices ⟨i,j⟩ (1≤i<j≤n) beautiful if:

  • ai+aj is divisible by x;
  • ai−aj is divisible by y.

For example, if x=5, y=2, n=6, a=1,2,7,4,9,6, then the only beautiful pairs are:

  • ⟨1,5⟩: a1+a5=1+9=10 (10 is divisible by 5) and a1−a5=1−9=−8 (−8 is divisible by 2);
  • ⟨4,6⟩: a4+a6=4+6=10 (10 is divisible by 5) and a4−a6=4−6=−2 (−2 is divisible by 2).

Find the number of beautiful pairs in the array a.

Input

The first line of the input contains a single integer t (1≤t≤104) --- the number of test cases. Then the descriptions of the test cases follow.

The first line of each test case contains three integers n, x, and y (2≤n≤2⋅105, 1≤x,y≤109) --- the size of the array and Polycarp's favorite integers.

The second line of each test case contains n integers a1,a2,...,an (1≤ai≤109) --- the elements of the array.

It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.

Output

For each test case, output a single integer --- the number of beautiful pairs in the array a.

Example

Input

Copy

复制代码

7

6 5 2

1 2 7 4 9 6

7 9 5

1 10 15 3 8 12 15

9 4 10

14 10 2 2 11 11 13 5 6

9 5 6

10 7 6 7 9 7 7 10 10

9 6 2

4 9 7 1 2 2 13 3 15

9 2 3

14 6 1 15 12 15 8 2 15

10 5 7

13 3 3 2 12 11 3 7 13 14

Output

Copy

复制代码
2
0
1
3
5
7
0

解题说明:此题是一道数学题,可以进行预处理出每个数分别摸上xy的值,用map存一下,然后遍历每个数,如果a + b是x的倍数的话,那么他们模x的值相加为x,如果a - b是y的倍数的话,那么他们的模y的值相等。

cpp 复制代码
#include<bits/stdc++.h>
#include<algorithm>
#include<map>
#include<iostream>
using namespace std;
long long n, x, y, c, i;
int a[200001];

int main() 
{
	int t = 1;
	cin >> t;
	while (t--)
	{
		cin >> n >> x >> y;
		map<int, map<int, int>>m;
		for (i = c = 0; i < n;) 
		{
			cin >> a[i];
			c += m[(x - a[i] % x) % x][a[i] % y];
			m[a[i] % x][a[i++] % y]++;
		}
		cout << c << '\n';
	}
	return 0;
}
相关推荐
不知名的老吴1 小时前
机器学习评价之基础指标
人工智能·算法·机器学习
源代码杀手1 小时前
基于ROS2+Gazebo+RIVE的40项计算机视觉前沿机器人项目(含视觉算法原理与源码获取方式)
算法·计算机视觉·机器人
MrZhao4001 小时前
大模型量化到底在做什么:从浮点数表示到 Qwen FP8 实践
算法
JieE2121 小时前
LeetCode35. 搜索插入位置:二分查找的基础与细节
javascript·算法
8Qi81 小时前
LeetCode 188 & 123:股票买卖问题(限制交易次数)—— 联合题解
算法·leetcode·职场和发展·动态规划
KaMeidebaby1 小时前
卡梅德生物技术快报|细胞周期检测抗原流式分析:参数调试、软件拟合与问题排查
网络·人工智能·python·网络协议·tcp/ip·算法·机器学习
一只齐刘海的猫1 小时前
【Leetcode】三数之和
数据结构·算法·leetcode
lightqjx1 小时前
【算法】数据结构_扩展域并查集
数据结构·算法·并查集·扩展域并查集
无忧.芙桃1 小时前
debug实例与分析(一)
开发语言·c++·算法