讨论 / 【230】为何超时????
woshiniba 2008-07-24 04:58:00
点我顶贴 收藏 删除
字符串最多长度是50,为何还会超时?!

状态: Unaccepted

测评机: Xeost[5]

得分: 20分

提交日期: 2008-7-21 17:10:00

有效耗时: 该状态没有记录

测试结果1: 无输出|运行超时

测试结果2: 测试结果错误.错误结果为:15

正确结果应为:18

测试结果3: 测试结果错误.错误结果为:22

正确结果应为:15

测试结果4: 测试结果正确

测试结果5: 测试结果错误.错误结果为:80

正确结果应为:107

提交代码: program rq230;

var

l:array [1..3] of longint;

s:array [1..3] of string;

ch:char;

i,j,p,t,all,min:longint;

procedure del2(a,b:longint);

begin

while s[a][1]=s[b][1] do

begin

delete(s[a],1,1);

delete(s[b],1,1);

end;

end;

procedure del3;

begin

while (s[1][1]=s[2][1])and(s[2][1]=s[3][1]) do

begin

delete(s[1],1,1);

delete(s[2],1,1);

delete(s[3],1,1);

end;

end;

begin

for i:=1 to 3 do

begin

read(l[i]);

read(ch);

for j:=1 to l[i] do

begin

read(ch);

s[i]:=s[i]+ch;

end;

end;

if (s[1][1]<>s[2][1])and(s[1][1]<>s[3][1])and(s[2][1]<>s[3][1])

then begin

all:=l[1]+l[2]+l[3]; writeln(all);

end

else if (s[1]=s[2])and(s[2]=s[3])

then begin

all:=0; writeln(all);

end

else if (s[1][1]=s[2][1])and(s[2][1]=s[3][1])

then begin

del3;

for i:=1 to 3 do

l[i]:=length(s[i]);

end;

if (s[1][1]<>s[2][1])and(s[2][1]=s[3][1])

then begin

del2(2,3);

all:=(l[2]-length(s[2]))*2+length(s[2])+length(s[3]);

writeln(all);

end

else if (s[2][1]<>s[1][1])and(s[1][1]=s[3][1])

then begin

del2(1,3);

all:=(l[1]-length(s[1]))*2+length(s[1])+length(s[3]);

writeln(all);

end

else if (s[3][1]<>s[1][1])and(s[2][1]=s[1][1])

then begin

del2(1,2);

all:=(l[1]-length(s[1]))*2+length(s[1])+length(s[2]);

writeln(all);

end;

readln; readln;

end.

菜鸟在此求助,各位大牛快现身!Help me!

#1 jjdd5208@2008-07-22 07:42:00
回复 删除
o(∩_∩)o...

有陷阱的!!!

这题我出的

^_^

#2 唐钰小宝@2008-07-23 19:59:00
回复 删除
jjdd5208,这是你出的吗?!

亏你讲的出来!

盗人家版权,是可耻的行为!

#3 woshiniba@2008-07-24 04:58:00
回复 删除
这题是我们安徽省的AHOI 2008 二试第二题
查看更多回复
提交回复