Your text to link here... _(a+b) mod x = (a mod x+b mod x) mod _ 对于本题: (ai+aj) mod x = (ai mod x+aj mod x) mod x = 0 即ai mod x+aj mod x = 0 / x 变形为->ai mod x = (x-aj mod x) mod x (ai mod x+aj mod x=0时ai mod x = aj mod x = 0,依然满足上式)
#include <bits/stdc++.h>
using namespace std;
const int maxn = 200005;
int n,a[maxn],x,y;
void solve()
{
cin >> n >> x >> y;
for(int i = 1;i<=n;i++) cin >> a[i];
long long ans = 0;
map<pair<int,int>,int> mp;
for(int i = 1;i<=n;i++)
{
int res1 = (x-a[i]%x)%x,res2 = a[i]%y;
pair<int,int> p={res1,res2};
ans += mp[p];
p = {a[i]%x,a[i]%y};
mp[p]++;
}
cout << ans << endl;
}
signed main()
{
int t = 1;
cin >> t;
while(t--)
{
solve();
}
return 0;
}