这道题用哈希可以做,但是这道题的输入要求太过于繁琐,所以我直接上map稍微好弄些。
这道题讲真更多的考察的是字符串的输入问题,看下代码就会明白的。
完整代码:
#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
#include <limits>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#define lowbit(x) ( x&(-x) )
#define pi 3.141592653589793
#define e 2.718281828459045
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
ull tmp1, tmp2;
char a[12], b[12];
map<string, bool> alive;
map<string, string> mp;
void init()
{
mp.clear();
alive.clear();
}
int main()
{
init();
while(true)
{
int i=0;
char tmp;
if( (tmp=getchar())=='\n' ) break;
else
{
a[i++]=tmp;
while(true)
{
tmp=getchar();
if(tmp==' ') { a[i]='\0'; break; }
a[i++]=tmp;
}
}
cin>>b;
getchar();
alive[b]=true;
mp[b]=a;
}
while(cin>>a)
{
if(alive[a]) cout<<mp[a]<<endl;
else printf("eh\n");
}
return 0;
}