program sushi;
Uses Math;
const MAXN=100000;
type piatto = record
inizio:longint;
durata:longint;
peso:longint;
fine:longint;
end;
elenco = array[0.. MAXN-1] of Longint;
table = array[0..MAXN-1] of piatto;
var N,i, ricordafine:Longint;
quantomangio:int64;
T : table;
S,W,D,E, ricordaindice:elenco; (*array riferiti ai piatti Start, Weigth, Durata, End*)
Procedure scambia (var a,b: longint);
var x:longint;
begin
x:=a;
a:=b;
b:=x;
end;
Procedure ordinamento (estremoi,estremos: longint; var v : elenco; var u:elenco; ordinato:boolean);
var inf, sup, medio:longint;
pivot :longint;
begin
inf:=estremoi;
sup:=estremos;
medio:= (estremoi+estremos) div 2;
pivot:=v[medio];
repeat
if (ordinato) then
begin
while (v[inf]<pivot) do inf:=inf+1;
while (v[sup]>pivot) do sup:=sup-1;
end;
if inf<=sup then
begin
scambia(v[inf],v[sup]);
scambia(u[inf],u[sup]);
inf:=inf+1;
sup:=sup-1;
end;
until inf>sup;
if (estremoi<sup) then ordinamento(estremoi,sup,v,u,ordinato);
if (inf<estremos) then ordinamento(inf,estremos,v,u,ordinato);
end;
begin
readln(N);
for i:=0 to N-1 do ricordaindice[i]:=i;
for i:=0 to N-1 do
begin
{ dish on table }
readln(S[i],W[i],D[i]);
E[i]:=S[i]+D[i];
T[i].inizio:=S[i];
T[i].durata:=D[i];
T[i].peso:=W[i];
T[i].fine:=E[i];
end;
ordinamento(0,N-1,E, ricordaindice,true);
for i:=0 to N-1 do write(E[i],' ',ricordaindice[i],' ');writeln;
quantomangio:=T[ricordaindice[0]].peso;
ricordafine:=T[ricordaindice[0]].fine;
for i:=1 to N-1 do
begin
if ((E[i]=ricordafine) and (i=1)) then quantomangio:=max(quantomangio,T[ricordaindice[i]].peso )
else
begin
if T[ricordaindice[i]].inizio>=ricordafine then begin quantomangio:=quantomangio+T[ricordaindice[i]].peso; ricordafine:=T[ricordaindice[i]].fine; end
else continue;
end;
end;
writeln(quantomangio);
end.
cHJvZ3JhbSBzdXNoaTsKVXNlcyBNYXRoOwpjb25zdCBNQVhOPTEwMDAwMDsKdHlwZSBwaWF0dG8gPSByZWNvcmQKICAgICAgICAgICAgICAgICAgIGluaXppbzpsb25naW50OwogICAgICAgICAgICAgICAgICAgZHVyYXRhOmxvbmdpbnQ7CiAgICAgICAgICAgICAgICAgICBwZXNvOmxvbmdpbnQ7CiAgICAgICAgICAgICAgICAgICBmaW5lOmxvbmdpbnQ7CiAgICAgICAgICAgICAgICBlbmQ7CiAgICAgZWxlbmNvID0gYXJyYXlbMC4uIE1BWE4tMV0gb2YgTG9uZ2ludDsgICAgICAgICAgIAogICAgIHRhYmxlID0gYXJyYXlbMC4uTUFYTi0xXSBvZiBwaWF0dG87ICAgICAgICAgIAp2YXIgTixpLCByaWNvcmRhZmluZTpMb25naW50OwogICAgcXVhbnRvbWFuZ2lvOmludDY0OwogICAgVCA6IHRhYmxlOyAKICAgIFMsVyxELEUsIHJpY29yZGFpbmRpY2U6ZWxlbmNvOyAgKCphcnJheSByaWZlcml0aSBhaSBwaWF0dGkgU3RhcnQsIFdlaWd0aCwgRHVyYXRhLCBFbmQqKQogICAgClByb2NlZHVyZSBzY2FtYmlhICh2YXIgYSxiOiBsb25naW50KTsKdmFyIHg6bG9uZ2ludDsKYmVnaW4KICAgeDo9YTsKICAgYTo9YjsKICAgYjo9eDsKZW5kOyAgCgpQcm9jZWR1cmUgb3JkaW5hbWVudG8gKGVzdHJlbW9pLGVzdHJlbW9zOiBsb25naW50OyB2YXIgdiA6IGVsZW5jbzsgdmFyIHU6ZWxlbmNvOyBvcmRpbmF0bzpib29sZWFuKTsKdmFyIGluZiwgc3VwLCBtZWRpbzpsb25naW50OwogICAgcGl2b3QgOmxvbmdpbnQ7CmJlZ2luCiAgICBpbmY6PWVzdHJlbW9pOwogICAgc3VwOj1lc3RyZW1vczsKICAgIG1lZGlvOj0gKGVzdHJlbW9pK2VzdHJlbW9zKSBkaXYgMjsKICAgIHBpdm90Oj12W21lZGlvXTsKICAgIHJlcGVhdAogICAgICBpZiAob3JkaW5hdG8pIHRoZW4KICAgICAgICAgYmVnaW4KICAgICAgICAgICAgd2hpbGUgKHZbaW5mXTxwaXZvdCkgZG8gIGluZjo9aW5mKzE7CiAgICAgICAgICAgIHdoaWxlICh2W3N1cF0+cGl2b3QpIGRvICBzdXA6PXN1cC0xOwogICAgICAgICBlbmQ7CiAgICAgIGlmIGluZjw9c3VwIHRoZW4KICAgICAgIGJlZ2luCiAgICAgICAgIHNjYW1iaWEodltpbmZdLHZbc3VwXSk7CiAgICAgICAgIHNjYW1iaWEodVtpbmZdLHVbc3VwXSk7CiAgICAgICAgIGluZjo9aW5mKzE7CiAgICAgICAgIHN1cDo9c3VwLTE7CiAgICAgICBlbmQ7CiAgICB1bnRpbCBpbmY+c3VwOwogICAgaWYgKGVzdHJlbW9pPHN1cCkgdGhlbiBvcmRpbmFtZW50byhlc3RyZW1vaSxzdXAsdix1LG9yZGluYXRvKTsKICAgIGlmIChpbmY8ZXN0cmVtb3MpIHRoZW4gb3JkaW5hbWVudG8oaW5mLGVzdHJlbW9zLHYsdSxvcmRpbmF0byk7CmVuZDsKCmJlZ2luCglyZWFkbG4oTik7Cglmb3IgaTo9MCB0byBOLTEgZG8gcmljb3JkYWluZGljZVtpXTo9aTsKCWZvciBpOj0wIHRvIE4tMSBkbwogICAgICBiZWdpbgogICAgICAgIHsgZGlzaCBvbiB0YWJsZSB9CiAgICAgICAgIHJlYWRsbihTW2ldLFdbaV0sRFtpXSk7CiAgICAgICAgIEVbaV06PVNbaV0rRFtpXTsKICAgICAgICAgVFtpXS5pbml6aW86PVNbaV07CiAgICAgICAgIFRbaV0uZHVyYXRhOj1EW2ldOwogICAgICAgICBUW2ldLnBlc286PVdbaV07CiAgICAgICAgIFRbaV0uZmluZTo9RVtpXTsKICAgICAgZW5kOwogICAgb3JkaW5hbWVudG8oMCxOLTEsRSwgcmljb3JkYWluZGljZSx0cnVlKTsKICAgIGZvciBpOj0wIHRvIE4tMSBkbyB3cml0ZShFW2ldLCcgJyxyaWNvcmRhaW5kaWNlW2ldLCcgJyk7d3JpdGVsbjsKICAgIHF1YW50b21hbmdpbzo9VFtyaWNvcmRhaW5kaWNlWzBdXS5wZXNvOwogICAgcmljb3JkYWZpbmU6PVRbcmljb3JkYWluZGljZVswXV0uZmluZTsKICAgIGZvciBpOj0xIHRvIE4tMSBkbwogICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgaWYgKChFW2ldPXJpY29yZGFmaW5lKSBhbmQgKGk9MSkpIHRoZW4gcXVhbnRvbWFuZ2lvOj1tYXgocXVhbnRvbWFuZ2lvLFRbcmljb3JkYWluZGljZVtpXV0ucGVzbyApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgVFtyaWNvcmRhaW5kaWNlW2ldXS5pbml6aW8+PXJpY29yZGFmaW5lIHRoZW4gYmVnaW4gcXVhbnRvbWFuZ2lvOj1xdWFudG9tYW5naW8rVFtyaWNvcmRhaW5kaWNlW2ldXS5wZXNvOyByaWNvcmRhZmluZTo9VFtyaWNvcmRhaW5kaWNlW2ldXS5maW5lOyBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgY29udGludWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgIGVuZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICB3cml0ZWxuKHF1YW50b21hbmdpbyk7ICAgCmVuZC4=