var j,i,n,m,p,q,w:integer;
x:char;
one,two:string;
name:array[1..2008] of string;
faa:array[1..2008] of integer;
tn:string;
function gf(r:integer):integer;
begin
if faa[r]=r then gf:=r else begin
faa[r]:=gf(faa[r]);
gf:=faa[r];
end;
end;
procedure union(x,y:integer);
var q1,w1:integer;
begin
q1:= gf(x);
w1:= gf(y);
if q1 <> w1 then faa[q1]:=w1;
end;
begin
for i:= 1 to 2008 do faa[i]:=i;
readln(n,m,p);
for i:= 1 to n do readln(name[i]);
for i:= 1 to m do begin
tn:=’’;
x:=’@’;
while x <> ’ ’ do begin tn:=tn+x;read(x);end;
one:=copy(tn,2,length(tn)-1);
readln(two);
for j:= 1 to n do if name[j] = one then begin q:=j;break; end;
for j:= 1 to n do if name[j] = two then begin w:=j;break; end;
union(q,w);
end;
for i:= 1 to p do begin
tn:=’’;
x:=’@’;
while x <> ’ ’ do begin tn:=tn+x;read(x);end;
one:=copy(tn,2,length(tn)-1);
readln(two);
for j:= 1 to n do if name[j] = one then begin q:=j;break; end;
for j:= 1 to n do if name[j] = two then begin w:=j;break; end;
if gf(q) <> gf(w) then writeln(’cc cry’) else writeln(’safe’);
end;
end.
one then
就是one,two的问题。
至于,...one then..... 我也不太清楚了,我没改