讨论 / 牛哥们来看看!!
123qaz 2010-08-06 18:35:00
点我顶贴 收藏 删除
program p476;

var a,b:string;

lb,i,s:integer;

begin

readln(b);

readln(a);

lb:=length(b); s:=0;

repeat

i:=pos(b,a);

if i<>0 then

begin

delete(a,i,lb);

s:=s+1;

end;

until i=0;

writeln(s);

end.

我这样为什么不行!只能过两组数据!!o(︶︿︶)o 唉

状态: Unaccepted

测评机: Xeost[5]

得分: 20分

提交日期: 2010-8-6 14:37:00

有效耗时: 219毫秒

测试结果1: 通过本测试点|有效耗时172ms

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

正确结果应为:3476

测试结果3: 输出过少|用户输出数据少于标准输出的50%[标准输出5位|选手输出1位]

测试结果4: 输出过少|用户输出数据少于标准输出的50%[标准输出5位|选手输出1位]

测试结果5: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]

测试结果6: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]

测试结果7: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]

测试结果8: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]

测试结果9: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]

测试结果10: 通过本测试点|有效耗时47ms

#1 zhanglin@2010-08-06 00:36:00
回复 删除
不能用string吧!

太短了!

#2 nezharen@2010-08-06 17:57:00
回复 删除
字符串b的长度会超过string。

而且题目中说输入文件长度小于500kb,其长度在512000个字节以内。

#3 nezharen@2010-08-06 18:35:00
回复 删除
我的程序

program qing;

var s1:string;s2:ansistring;l1:0..255;i,l2:longint;

z:longint;

procedure find(var x:longint);

var i:0..512000;

begin

if x<1 then exit;

for i:=x-l1+1 to x do

if i>=1 then

if copy(s2,i,l1)=s1 then

begin

x:=i;exit;

end;

end;

begin

readln(s1);read(s2);

l1:=length(s1);

z:=0;i:=1;

l2:=length(s2);

while (i+l1-1)<=l2 do

begin

if (i>=1)and(copy(s2,i,l1)=s1) then

begin

inc(z);delete(s2,i,l1);

dec(i);

find(i);

end

else

inc(i);

end;

write(z);

end.

不过第八个测试数据似乎错了。做过这个题的人都认为这样。

查看更多回复
提交回复