一道十分坏贼的题
避坑指南:数据范围限定了不能暴力枚举(你可以试试会不会TLE),特殊情况需要特殊对待
解题思路:因为不能暴力枚举,所以把每个给出的数取模(数据范围比较友好,不会涉及高精取模),接下来利用模的可加性即可
#include<bits/stdc++.h>
using namespace std;
int n,k,a[111],z,ans;
int main(){
cin>>n>>k;
for(int i=0;i<n;i++){
cin>>z;
a[z%k]++;
}
for(int i=0;i<=k/2;i++){
if(i==0 || i*2==k) ans+=a[i];
else ans+=2*min(a[i],a[k-i]);
}
cout<<ans<<endl;
}