Pagini recente » Cod sursa (job #69030) | Cod sursa (job #1276657) | Cod sursa (job #1514927) | Cod sursa (job #465533) | Cod sursa (job #137487)
Cod sursa(job #137487)
var x,s,d,sol1,sol2,c:array[0..100000] of longint;
n,i,j,k,l,min:longint;
begin
assign(input,'stalpi.in');
assign(output,'stalpi.out');
reset(input);
rewrite(output);
read(N);
for i:=1 to n do
read(x[i],c[i],s[i],d[i]);
for i:=1 to n do
begin
min:=sol1[i-1];
j:=i;
while (x[i]-x[j]<=s[i])and (J>0) do
begin
dec(j);
if sol1[j]<min then min:=sol1[j];
if sol2[j]<min then min:=sol2[j];
end;
sol1[i]:=min+c[i];
while (x[j+1]-x[i]<=d[i])and(j<N) do
begin
inc(J);
if (sol2[j]>sol1[i]) or (sol2[j]=0)then
sol2[j]:=sol1[i];
end;
j:=i;
while (x[i]-x[j-1]<=d[i])and(J>1) do
begin
dec(J);
if (sol2[j]>sol1[i]) then
sol2[j]:=sol1[i];
end;
end;
if sol1[n]<sol2[n] then
writeln(sol1[n])
else writeln(sol2[n]);
close(output);
close(input);
end.