#include <iostream>
using namespace std;
#define MAX 1000
int hash[MAX];
void init(int p)
{
for (int j = 0; j < p; j++)
{
hash[j] = -1;
}
}
int flag;
int main()
{
int n, p;
cin >> n >> p;
int num;
int pos;
for (int i = 0; i < n; i++)
{
cin >> num;
for (int j = 0; j < p; j++)
{
if (hash[j] == num)
{
flag = 0;
cout << j;
break;
}
}
if (!flag)
{
pos = num % p;
while (hash[pos] != -1)
{
pos++;
if(pos==p){
pos=0;
}
}
hash[pos]=num;
cout<<pos;
}
if(i!=n-1){
cout<<" ";
}
}
}
哈希表
测试中含有相同的一项的,因此是需要判断是不是存在,如果存在直接输出。