Cod sursa(job #137265)

Utilizator free2infiltrateNezbeda Harald free2infiltrate Data 17 februarie 2008 10:42:48
Problema Stalpi Scor 0
Compilator fpc Status done
Runda preONI 2008, Runda 4, Clasa a 10-a Marime 1.07 kb
program stalpi;
type vect = record
            X,C,S,D,L : longint;
            end;
var A : array [1..100000] of vect;
    B : vect;
    f : text;
    n,i,j,cost : longint;
    ok : boolean;
begin
assign(f,'stalpi.in');
reset(f);
readln(f,n);

for i := 1 to n do begin
readln(f,A[i].x,A[i].C,A[i].S,A[i].D);
A[i].L := 0;
end;

close(f);


repeat
ok := true;
for i := 1 to n-1 do
if A[i].C>A[i+1].C then begin
                        B := A[i];
                        A[i] := A[i+1];
                        A[i+1] := B;
                        ok := false;
                        end;
until ok;


cost := 0;
for i := 1 to n do begin
cost := cost+A[i].C;
for j := 1 to n do begin
if (A[i].x-A[i].S<=A[j].X) and (A[j].X<=A[i].X) then A[j].L := 1;
if (A[j].X<=A[i].X+A[i].D) and (A[i].X<=A[j].X) then A[j].L := 1;
end;
ok := true;
for j := 1 to n do
if A[j].L<>1 then begin
                ok := false;
                break;
                end;
if ok then break;
end;



assign(f,'stalpi.out');
rewrite(f);
write(f,cost);
close(f);

end.