【题意】
给定一些单词对应的单词,询问单词对应的单词
【输入】
先给定对应关系,两个单词A、B,中间用一个空格分隔
表示B对应的单词为A
然后一个空行分隔
接下来每行表示询问一个单词对应的单词
单词是100000级的,询问也是,单词长度不超过10
【输出】
对于每个询问输出对应的单词,若不存在对应的单词输出'eh'
trie树运用
program poj2503;
var
tot,i,j,k:longint;
p,s:string;
trie:array [0..1000001,'a'..'z'] of longint;
point:array [0..1000001] of string[10];
procedure insert (s,p:string);
var
i,k:longint;
begin
k:=0;
for i:=1 to length(s) do
begin
if trie[k,s[i]]=0 then
begin
inc(tot);
trie[k,s[i]]:=tot;
point[trie[k,s[i]]]:='eh';
end;
k:=trie[k,s[i]];
end;
point[k]:=p;
end;
function find (s:string):longint;
var
i,k:longint;
begin
k:=0;
for i:=1 to length(s) do
begin
if trie[k,s[i]]=0 then exit(0);
k:=trie[k,s[i]];
end;
exit(k);
end;
begin
tot:=0;
repeat
readln(s);
if s='' then break;
p:=copy(s,pos(' ',s)+1,length(s)-pos(' ',s));
delete(s,pos(' ',s),length(s)-pos(' ',s)+1);
insert(p,s);
until false;
point[0]:='eh';
while not seekeof do
begin
readln(s);
writeln(point[find(s)]);
end;
end.