#include <bits/stdc++.h>
using namespace std;
int main()
{
int Hash[550];
int n,k;
while(cin>>n>>k)
{
memset(Hash, -1, sizeof(Hash));
for(int i=0; i<n; i++)
{
int x;
cin>>x;
x = x % k;
Hash[x]++;
if(Hash[x] == 0)
cout<<x;
else
{
for(int j=1; j<=k-1; j++)
{
if(Hash[(x + j*j)%k] == -1)
{
cout<<(x + j*j)%k;
Hash[(x + j*j)%k]++;
break;
}
else if(Hash[(x - j*j)%k] == -1)
{
cout<<(x - j*j)%k;
Hash[(x - j*j)%k]++;
break;
}
}
}
if(i == n-1)
cout<<endl;
else
cout<<" ";
}
}
return 0;
}
3377 数据结构实验之查找五:平方之哈希表
最新推荐文章于 2018-12-18 21:42:26 发布