Pagini recente » Cod sursa (job #2834382) | Cod sursa (job #1002804) | Cod sursa (job #1359267) | Cod sursa (job #3260762) | Cod sursa (job #470339)
Cod sursa(job #470339)
program gardieni;
type element=record
inc, sf, pr:longint;
end;
var f, g:text;
n, t, s, upr, nr, sf:longint;
v:array[1..50005] of element;
procedure citire;
var i:longint;
begin
readln(f,n,t);
for i:=1 to n do
read(f,v[i].inc,v[i].sf,v[i].pr);
end;
function pozitionare(i,j:longint):longint;
var x:element;
begin
x:=v[i];
while i<j do
begin
while (j>i) and (v[j].inc>=x.inc) do
j:=j-1;
v[i]:=v[j];
while (i<j) and (v[i].inc<=x.inc) do
i:=i+1;
v[j]:=v[i];
end;
v[i]:=x;
pozitionare:=i;
end;
procedure Qsort(st,dr:longint);
var m:longint;
begin
m:=pozitionare(st,dr);
if st<m-1 then
Qsort(st,m-1);
if m+1<dr then
Qsort(m+1,dr);
end;
procedure rezolvare;
var i, j:longint;
begin
for i:=1 to n do
if v[i].inc<=v[i].sf then
begin
s:=s+(v[i].sf-v[i].inc+1)*v[i].pr;
sf:=v[i].sf;
{ s:=s+(v[i].sf-v[i].inc+1)*v[i].pr;}
upr:=v[i].pr;
j:=i+1;
while (v[j].inc<=sf) and (j<=n) do
begin
nr:=sf-v[j].inc+1;
if v[j].pr<upr then
begin
s:=s-nr*upr+nr*v[j].pr;
upr:=v[j].pr;
end;
v[j].inc:=v[i].sf+1;
j:=j+1;
end;
end;
writeln(g,s);
end;
begin
assign(f,'gardieni.in'); reset(f);
assign(g,'gardieni.out'); rewrite(g);
citire;
qsort(1,n);
rezolvare;
close(f);
close(g);
end.