Cod sursa(job #137473)

Utilizator al3csutzuSirbu Alexandru al3csutzu Data 17 februarie 2008 12:22:12
Problema Stalpi Scor 0
Compilator fpc Status done
Runda preONI 2008, Runda 4, Clasele 11-12 Marime 0.89 kb
program stalpi;
var x,c,s,d:array [1..100000] of longint;
aprins,lum:array [1..100000] of boolean;
n,i:longint;
sum:int64;
f,g:text;
begin
  assign(f,'stalpi.in'); assign(g,'stalpi.out');
  reset(f); rewrite(g);
  read(f,n);
  for i:=1 to n do
    read(f,x[i],c[i],s[i],d[i]);
  for i:=1 to n do
  begin
  if lum[i]=false then
    if (x[i]<x[i+1]-s[i+1]) and(x[i]>x[i-1]+d[i-1]) then begin sum:=sum+c[i]; aprins[i]:=true; lum[i]:=true; end
    else
      if (x[i]>x[i-1]-s[i-1]) and (x[i-1]+d[i-1]>x[i]) and (aprins[i-1]=true) then begin lum[i]:=true; end
    else
      if (x[i]>x[i+1]-s[i+1]) and (x[i+1]+d[i+1]>x[i]) then
      begin
        if c[i]<c[i+1] then begin aprins[i]:=true; sum:=sum+c[i]; lum[i]:=true; lum[i+1]:=true; end
        else begin aprins[i+1]:=true; sum:=sum+c[i+1]; lum[i]:=true; lum[i+1]:=true; end;
      end;
  end;
  writeln(g,sum);
  close(f); close(g);
end.