什么时候超时?
pascal吧
全部回复
仅看楼主
level 7
这是noip2013第三题
2015年10月04日 15点10分 1
level 7
普及组的。。。。
2015年10月04日 15点10分 2
level 7
mz,mf,m,f,f1:int64;
pd:boolean;
begin
readln(n,p);
mz:=0; mf:=0; m:=0; pd:=false;
for i:=1 to n do begin
read(s);
if i=1 then begin
if s<0 then begin
mf:=mf+s;
pd:=true;
end;
m:=m+s;
end
else begin
if s<0 then begin
mf:=mf+s;
pd:=true;
if s>m then m:=s;
end
else begin
if pd then begin
mz:=mz+s;
if mz+mf>0 then
if mf+m<0 then begin
m:=mz;
mz:=0;
end
else begin
m:=m+mf+mz;
mz:=0;
mf:=0;
end
else if m<mz then begin
m:=mz;
mz:=0;
end;
end
else m:=m+s;
end;
end;
t:=m;
case i of
1:begin f1:=t; f:=f1; end;
2:f:=2*f1;
else if t>0 then f:=f+l;
end;
l:=t;
if i=n then
if f1>f then f:=f1;
end;
if f<0 then write('-');
writeln(abs(f) mod p);
readln;
end.
2015年10月04日 15点10分 3
level 7
这时间复杂度应该是o(n)吧,应该不会超时。。。
2015年10月04日 15点10分 4
level 7
我连数组都不用了
2015年10月04日 15点10分 5
1