思路:水题..其实就是把输入的字符串倒着输出就行了,加个map判重就可以了
#include <cstdio>
#include <queue>
#include <cstring>
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <map>
#include <string>
#include <set>
#include <ctime>
#include <cmath>
#include <cctype>
using namespace std;
#define maxn 200005
#define LL long long
int cas=1,T;
map<string,int> visit;
string s[maxn];
int main()
{
int n;
while (scanf("%d",&n)!=EOF)
{
for (int i = 0;i<n;i++)
{
cin >> s[i];
//visit[s[i]]=1;
}
for (int i = n-1;i>=0;i--)
{
if (!visit[s[i]])
cout << s[i] << endl;
visit[s[i]]=1;
}
}
//freopen("in","r",stdin);
//scanf("%d",&T);
//printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC);
return 0;
}