这个是我的题目,不知道题目一不一样。全通过了
// 输入n,k 有n个球,求拿出最多的球,使得没有球是k的倍数,且没有两个球的和是k的倍数。
// 按照余数来好了
#include<bits/stdc++.h>
using namespace std;
int arr[100005];
int yu[100005];
int n, k;
int pos;
void solve() {
int sum = 0;
int ans = 0;
for (int i = 1; i < k; ++i) {
sum += yu[i];
if (yu[i] > yu[k-i]) ans += yu[i];
if (yu[i] == yu[k-i]) {
if (i < k - i) ans += yu[i];
if (i == k - i) ans ++;
}
}
cout << ans << endl;
}
int main() {
cin >> n >> k;
for (int i = 0; i <= k; ++i) yu[i] = 0;
for (int i = 0; i < n; ++i) {
cin >> arr[i];
yu[arr[i] % k] ++;
}
solve();
return 0;
}