测评机: Xeost[5]
得分: 90分
提交日期: 2009-2-3 8:38:00
有效耗时: 1044毫秒
测试结果1: 输出过少|用户输出数据少于标准输出的50%[标准输出5位|选手输出1位]
测试结果2: 通过本测试点|有效耗时47:ms
测试结果3: 通过本测试点|有效耗时47:ms
测试结果4: 通过本测试点|有效耗时46:ms
测试结果5: 通过本测试点|有效耗时62:ms
测试结果6: 通过本测试点|有效耗时172:ms
测试结果7: 通过本测试点|有效耗时156:ms
测试结果8: 通过本测试点|有效耗时171:ms
测试结果9: 通过本测试点|有效耗时172:ms
测试结果10: 通过本测试点|有效耗时171:ms
提交代码: var
a:array[1..30,1..30]of longint;
l1,l2,l3,m,n,o,p,q:longint;
f1,f2,f3:array[1..99999]of longint;
procedure cheng1(i,j:longint);
var
k:longint;
begin
if j>m
then j:=j-m;
for k:=1to l2 do
f2[k]:=f2[k]*a[i,j];
for k:=1to l2-1do
begin
f2[k+1]:=f2[k+1]+f2[k]div 10;
f2[k]:=f2[k]mod 10;
end;
while f2[l2]>=10do
begin
inc(l2);
f2[l2]:=f2[l2-1]div 10;
f2[l2-1]:=f2[l2-1]mod 10;
end;
end;
procedure cheng2(i,j:longint);
var
k:longint;
begin
if j<=0
then j:=j+m;
for k:=1to l2 do
f2[k]:=f2[k]*a[i,j];
for k:=1to l2-1do
begin
f2[k+1]:=f2[k+1]+f2[k]div 10;
f2[k]:=f2[k]mod 10;
end;
while f2[l2]>=10do
begin
inc(l2);
f2[l2]:=f2[l2-1]div 10;
f2[l2-1]:=f2[l2-1]mod 10;
end;
end;
procedure jia1;
var
i:longint;
begin
if l1<l2
then l1:=l2;
for i:=1to l1 do
f1[i]:=f1[i]+f2[i];
for i:=1to l1-1do
begin
f1[i+1]:=f1[i+1]+f1[i]div 10;
f1[i]:=f1[i]mod 10;
end;
while f1[l1]>=10do
begin
inc(l1);
f1[l1]:=f1[l1-1]div 10;
f1[l1-1]:=f1[l1-1]mod 10;
end;
end;
procedure jia2;
var
i:longint;
begin
if l3<l2
then l3:=l2;
for i:=1to l3 do
f3[i]:=f3[i]+f2[i];
for i:=1to l3-1do
begin
f3[i+1]:=f3[i+1]+f3[i]div 10;
f3[i]:=f3[i]mod 10;
end;
while f3[l3]>=10do
begin
inc(l3);
f3[l3]:=f3[l3-1]div 10;
f3[l3-1]:=f3[l3-1]mod 10;
end;
end;
procedure work1(i:longint);
var
j:longint;
begin
fillchar(f2,sizeof(f2),0);
f2[1]:=a[1,i];
l2:=1;
while f2[l2]>=10do
begin
inc(l2);
f2[l2]:=f2[l2-1]div 10;
f2[l2-1]:=f2[l2-1]mod 10;
end;
for j:=2to m do
cheng1(j,i+j-1);
jia1;
end;
procedure work2(i:longint);
var
j:longint;
begin
fillchar(f2,sizeof(f2),0);
f2[1]:=a[1,i];
l2:=1;
while f2[l2]>=10do
begin
inc(l2);
f2[l2]:=f2[l2-1]div 10;
f2[l2-1]:=f2[l2-1]mod 10;
end;
for j:=2to m do
cheng2(j,i-j+1);
jia2
end;
procedure huan;
begin
f2:=f1;
f1:=f3;
f3:=f2;
l2:=l1;
l1:=l3;
l3:=l2;
write(’-’);
end;
procedure jian;
var
i:longint;
begin
for i:=1to l1 do
begin
f1[i]:=f1[i]-f3[i];
if f1[i]<0
then begin
f1[i]:=f1[i]+10;
dec(f1[i+1]);
end;
end;
while f1[l1]=0do
dec(l1);
end;
begin
readln(m);
for n:=1to m do
begin
for o:=1to m do
read(a[n,o]);
readln;
end;
for n:=1to m do
work1(n);
for n:=1to m do
work2(n);
if l1<l3
then huan;
if l1=l3
then begin
q:=l1;
while(f1[q]=f3[q])and(q>0)do
dec(q);
if q=0
then begin
write(0);
halt;
end;
if f1[q]<f3[q]
then huan;
end;
jian;
for q:=l1 downto 1do
write(f1[q]);
end.
这是为什么?