讨论 / RP不行,各位帮忙看看啦,
chip 2012-08-23 16:26:00
点我顶贴 收藏 删除
{

rqnoj.377.AB_problem;

}

program ab_problem;

var

a:array[0..2,1..40002]of longint;

i,j,n:longint;

c1,c2,c:char;

procedure rebuild;

var i:longint;

begin

for i:=1 to 2*n+1 do

if a[0,i]>=10 then begin

a[0,i+1]:=a[0,i+1]+a[0,i] div 10;

a[0,i]:=a[0,i]mod 10;

end;

end;

begin

readln(n);

read(c1);

if c1='-' then for i:=n downto 1 do begin

read(c);

a[1,i]:=ord(c)-ord('0');

end

else begin

a[1,n]:=ord(c1)-ord('0');

for i:=n-1 downto 1 do begin

read(c);

a[1,i]:=ord(c)-ord('0');

end

end;

readln;

read(c2);

if c2='-' then for i:=n downto 1 do begin

read(c);

a[2,i]:=ord(c)-ord('0');

end

else begin

a[2,n]:=ord(c2)-ord('0');

for i:=n-1 downto 1 do begin

read(c);

a[2,i]:=ord(c)-ord('0');

end

end;

readln;

for i:=0 to n-1 do begin

for j:=1 to n do begin

a[0,j+i]:=a[0,j+i]+a[1,j]*a[2,i+1];

if a[0,i+j]>=100000000 then rebuild;

end;

end;

rebuild;

for j:=40002 downto 1 do if a[0,j]<>0 then break;

if ((c1='-')and(c2<>'-'))or((c1<>'-')and(c2='-')) then write('-');

for i:=j downto 1 do write(a[0,i]);

writeln;

readln;

readln;

end.

{

题目:A*B Problem

状态: Unaccepted

测评机: Xeond[6]

得分: 40分

提交日期: 2010-9-18 8:44:00

有效耗时: 703毫秒

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

测试结果2: 通过本测试点|有效耗时171ms

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

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

测试结果5: 选手程序运行超过时限

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

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

测试结果8: 选手程序运行超过时限

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

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

}

#1 lxl@2010-09-22 21:44:00
回复 删除
此题需要压位。

一般压四位足够,不行压8位。

你只是每位存十进制,内存占用大,时间长。

#2 刘载清@2012-08-23 16:26:00
回复 删除
同上~

[color=green]同上[/color]

查看更多回复
提交回复