D最后一组数据是啥,该代码本地测试错误为什么能过
#include <bits/stdc++.h>
const int N = 2e3 + 10;
long long a[N],dp[N];
int main()
{
long long n,m;
std::cin >> n >> m;
memset(dp,0x3f,sizeof dp);
for(int i = 1; i <= n; i++)
{
std::cin >> a[i],dp[a[i]%m] = 1;
}
for(int i = 1; i <= n; i++)
{
for(int mod = m - 1; mod >= 0; mod--)
{
dp[mod] = std::min(dp[mod],dp[(mod - (a[i]%m) + m)%m] + 1);
}
}
std::cout << dp[0] << std::endl;
return 0;
}
4 2000 1 3 5 2
