求指点
  • 板块P1599 结算日
  • 楼主yin_sy
  • 当前回复72
  • 已保存回复72
  • 发布时间2016/1/1 11:14
  • 上次更新2025/7/23 11:40:19
查看原帖
求指点
10422
yin_sy楼主2016/1/1 11:14
var
  s,n,i,m,wz,v,q,bs:longint;
  a:array [1..100000] of longint;
begin
  q:=maxlongint;
  readln(n);
  for i:=1 to n do
    readln(a[i]);
  i:=1;
  while i<=n do
  begin
    inc(bs);
    if a[i]<0 then
    begin
      if q=maxlongint then begin wz:=i; q:=0; end
                      else v:=1;
      q:=q-a[i];
    end
    else
    begin
      s:=s+a[i];
    end;
    if s>q then begin s:=s-q; bs:=bs+(i-wz)*2; q:=maxlongint; wz:=0; end;
    inc(i);
  end;
  if wz<>0 then writeln(bs+(n-wz)*2)
           else writeln(bs);
end.
为什么只有六十分。
2016/1/1 11:14
加载中...