这个是我的题目,不知道题目一不一样。全通过了

// 输入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;
}