#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, p, i, j, x;
int s[1550], h[100050];
while(~scanf("%d%d", &n, &p))
{
memset(s, 0, sizeof(s));
memset(h, -1, sizeof(h));
for(i = 0; i < n; i++)
{
scanf("%d", &s[i]);
}
for(i = 0; i < n; i++)
{
x = s[i]%p;
if(h[x] == -1 || h[x] == s[i])
{
h[x] = s[i];
}
else
{
for(j = 1; j < p; j++)
{
x = (s[i] + j) % p;
if(h[x] == -1 || h[x] == s[i])
{
h[x] = s[i];break;
}
}
}
}
for(i = 0; i < n; i++)
{
x = s[i]%p;
if(h[x] == s[i])
{
printf("%d%c", x, i == n-1 ? '\n' : ' ');
}
else
{
for(j = 1; j < p; j++)
{
x = (s[i] + j) % p;
if(h[x] == s[i])
{
printf("%d%c", x, i == n-1 ? '\n' : ' ');
break;
}
}
}
}
}
return 0;
}
数据结构实验之查找七:线性之哈希表
最新推荐文章于 2022-04-04 22:19:15 发布