program sushi;
const MAXN=100000;
type piatto = record
inizio:longint;
durata:longint;
peso:longint;
fine:longint;
end;
elenco = array[0.. MAXN-1] of Longint;
table = array[1..MAXN] of piatto;
var N,i:Longint;
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];
end;
ordinamento(0,N-1,E, ricordaindice,true);
for i:=0 to N-1 do write(E[i],' ',ricordaindice[i],' ');writeln;
end.
cHJvZ3JhbSBzdXNoaTsKY29uc3QgTUFYTj0xMDAwMDA7CnR5cGUgcGlhdHRvID0gcmVjb3JkCiAgICAgICAgICAgICAgICAgICBpbml6aW86bG9uZ2ludDsKICAgICAgICAgICAgICAgICAgIGR1cmF0YTpsb25naW50OwogICAgICAgICAgICAgICAgICAgcGVzbzpsb25naW50OwogICAgICAgICAgICAgICAgICAgZmluZTpsb25naW50OwogICAgICAgICAgICAgICAgZW5kOwogICAgIGVsZW5jbyA9IGFycmF5WzAuLiBNQVhOLTFdIG9mIExvbmdpbnQ7ICAgICAgICAgICAKICAgICB0YWJsZSA9IGFycmF5WzEuLk1BWE5dIG9mIHBpYXR0bzsgICAgICAgICAgCnZhciBOLGk6TG9uZ2ludDsKICAgIFQgOiB0YWJsZTsgCiAgICBTLFcsRCxFLCByaWNvcmRhaW5kaWNlOmVsZW5jbzsgICgqYXJyYXkgcmlmZXJpdGkgYWkgcGlhdHRpIFN0YXJ0LCBXZWlndGgsIER1cmF0YSwgRW5kKikKICAgIApQcm9jZWR1cmUgc2NhbWJpYSAodmFyIGEsYjogbG9uZ2ludCk7CnZhciB4OmxvbmdpbnQ7CmJlZ2luCiAgIHg6PWE7CiAgIGE6PWI7CiAgIGI6PXg7CmVuZDsgIAoKUHJvY2VkdXJlIG9yZGluYW1lbnRvIChlc3RyZW1vaSxlc3RyZW1vczogbG9uZ2ludDsgdmFyIHYgOiBlbGVuY287IHZhciB1OmVsZW5jbzsgb3JkaW5hdG86Ym9vbGVhbik7CnZhciBpbmYsIHN1cCwgbWVkaW86bG9uZ2ludDsKICAgIHBpdm90IDpsb25naW50OwpiZWdpbgogICAgaW5mOj1lc3RyZW1vaTsKICAgIHN1cDo9ZXN0cmVtb3M7CiAgICBtZWRpbzo9IChlc3RyZW1vaStlc3RyZW1vcykgZGl2IDI7CiAgICBwaXZvdDo9dlttZWRpb107CiAgICByZXBlYXQKICAgICAgaWYgKG9yZGluYXRvKSB0aGVuCiAgICAgICAgIGJlZ2luCiAgICAgICAgICAgIHdoaWxlICh2W2luZl08cGl2b3QpIGRvICBpbmY6PWluZisxOwogICAgICAgICAgICB3aGlsZSAodltzdXBdPnBpdm90KSBkbyAgc3VwOj1zdXAtMTsKICAgICAgICAgZW5kOwogICAgICBpZiBpbmY8PXN1cCB0aGVuCiAgICAgICBiZWdpbgogICAgICAgICBzY2FtYmlhKHZbaW5mXSx2W3N1cF0pOwogICAgICAgICBzY2FtYmlhKHVbaW5mXSx1W3N1cF0pOwogICAgICAgICBpbmY6PWluZisxOwogICAgICAgICBzdXA6PXN1cC0xOwogICAgICAgZW5kOwogICAgdW50aWwgaW5mPnN1cDsKICAgIGlmIChlc3RyZW1vaTxzdXApIHRoZW4gb3JkaW5hbWVudG8oZXN0cmVtb2ksc3VwLHYsdSxvcmRpbmF0byk7CiAgICBpZiAoaW5mPGVzdHJlbW9zKSB0aGVuIG9yZGluYW1lbnRvKGluZixlc3RyZW1vcyx2LHUsb3JkaW5hdG8pOwplbmQ7CgpiZWdpbgoJcmVhZGxuKE4pOwoJZm9yIGk6PTAgdG8gTi0xIGRvIHJpY29yZGFpbmRpY2VbaV06PWk7Cglmb3IgaTo9MCB0byBOLTEgZG8KICAgICAgYmVnaW4KICAgICAgICB7IGRpc2ggb24gdGFibGUgfQogICAgICAgICByZWFkbG4oU1tpXSxXW2ldLERbaV0pOwogICAgICAgICBFW2ldOj1TW2ldK0RbaV07CiAgICAgICAgIAogICAgICBlbmQ7CiAgICBvcmRpbmFtZW50bygwLE4tMSxFLCByaWNvcmRhaW5kaWNlLHRydWUpOwogICAgZm9yIGk6PTAgdG8gTi0xIGRvIHdyaXRlKEVbaV0sJyAnLHJpY29yZGFpbmRpY2VbaV0sJyAnKTt3cml0ZWxuOwogICAgICAKZW5kLgo=