如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。

URAL/1089

来自"NOCOW"

跳转到: 导航, 搜索

直接暴力判断即可。

{
 Author: Kwc-Oliver
 Prob: Ural 1089
 State: AC
 Time: 2009-08-19 19:51
 Memo: 字符串处理,字典
	}
var
 
	sen:array[1..1000] of ansistring;
 
	d:array[1..100] of string[11];
 
	s:string[11];
 
	size,top,ans:longint;
 
procedure print(s:string);
 
	var
 
		len,i,c,j:integer;
 
	begin
 
		len:=length(s);
 
		for i:=1 to size do begin
 
			if length(d[i])<>len then continue;
 
			c:=0;
 
			for j:=1 to len do
 
				if d[i,j]<>s[j] then 
 
					inc(c);
 
			if c<=1 then begin
 
				if c=1 then inc(ans);
 
				write(d[i]);
 
				exit;
 
			end;
 
		end;
 
		write(s);
 
	end;
 
procedure work(k:integer);
 
	var
 
		len,i:integer;
 
		tmp:string[20];
 
	begin
 
		len:=length(sen[k]);
 
		tmp:='';
 
		for i:=1 to len do begin
 
			if (ord(sen[k,i])<ord('a')) or (ord(sen[k,i])>ord('z')) then begin
 
				if tmp<>'' then
 
					print(tmp);
 
				tmp:='';
 
				write(sen[k,i]);
 
			end else
 
				tmp:=tmp+sen[k,i];
 
		end;
 
		if tmp<>'' then print(tmp);
 
		writeln;
 
	end;
 
begin
 
	assign(input,'1089.in');reset(input);
 
	readln(s);
 
	size:=0;top:=0;
 
	while s[1]<>'#' do begin
 
		inc(size);
 
		d[size]:=s;
 
		readln(s);
 
	end;
 
	while not seekeof do begin
 
		inc(top);
 
		readln(sen[top]);
 
		work(top);
 
	end;
 
	writeln(ans);
 
end.
个人工具