【题目链接】
【算法】
本题用map很好写,笔者用的是哈希的写法
【代码】
#include<bits/stdc++.h>
using namespace std;
#define MOD 10007
#define MAXN 50010
int T,n,len,i,x;
int a[MAXN];
vector<int> e[MOD];
inline void Clear() {
int i;
for (i = 0; i < MOD; i++) e[i].clear();
}
inline bool Find(int x) {
int i,h;
if (x < 0) h = (-x) % MOD;
else h = x % MOD;
for (i = 0; i < e[h].size(); i++) {
if (e[h][i] == x) return true;
}
return false;
}
inline void ins(int x) {
int h;
if (x < 0) h = (-x) % MOD;
else h = x % MOD;
e[h].push_back(x);
}
int main() {
scanf("%d",&T);
while (T--) {
len = 0;
scanf("%d",&n);
Clear();
for (i = 1; i <= n; i++) {
scanf("%d",&x);
if (!Find(x)) {
a[++len] = x;
ins(x);
}
}
for (i = 1; i < len; i++) printf("%d ",a[i]);
printf("%d\n",a[len]);
}
return 0;
}