program formula1;
type elenco = array[1..200000] of qword;
var N,Q,i,j :qword;
a, b, c :array[1..2000] of qword;
p, t, valore, id : elenco;
function calcolavalore (aa,bb,cc,tt:qword): qword;
begin
calcolavalore:=aa*tt*tt+bb*tt+cc;
end;
Procedure scambia (var aa,bb: qword);
var x:qword;
begin
x:=aa;
aa:=bb;
bb:=x;
end;
Procedure ordinamento (estremoi,estremos: qword; var v : elenco;var u : elenco; ordinato:boolean);
var inf, sup, medio:qword;
pivot :qword;
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;
Procedure ordinamento (estremoi,estremos: qword; var v : elenco; ordinato:boolean);
var inf, sup, medio:qword;
pivot :qword;
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]);
inf:=inf+1;
sup:=sup-1;
end;
until inf>sup;
if (estremoi<sup) then ordinamento(estremoi,sup,v,ordinato);
if (inf<estremos) then ordinamento(inf,estremos,v,ordinato);
end;
procedure controlla (var v: elenco; var u : elenco);
var h, w, x, ricorda : qword;
temp : elenco;
begin
h:=1; w:=1;
while (h<=N) do
begin
if v[h]=v[h+1] then
begin
temp[w]:=u[h]; writeln (h);
w:=w+1;
end;
h:=h+1;
end;
for h:=1 to w do writeln(temp[w]); writeln;
ricorda:= h-1; writeln('ricorda ',ricorda,' w ',w);
ordinamento(1,w,temp,true);
x:=1;
for h:=ricorda-w+1 to ricorda do begin u[h]:=temp[x]; x:=x+1;end;
end;
begin
(*assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);*)
readln(N);
for i:=1 to N do begin readln(a[i],b[i],c[i]); id[i]:=i; end;
readln(Q);
for i:=1 to Q do
begin
readln (p[i],t[i]);
for j:=1 to N do valore[j]:=calcolavalore(a[j],b[j],c[j],t[i]);
ordinamento(1,N,valore, id, true);
for j:=1 to N do writeln (id[j]); writeln;
controlla (valore, id);
for j:=1 to N do writeln (id[j]); writeln;
writeln(id[p[i]]);
for j:=1 to N do begin valore[j]:=0; id[j]:=j; end;
end;
end.
cHJvZ3JhbSBmb3JtdWxhMTsKdHlwZSBlbGVuY28gPSBhcnJheVsxLi4yMDAwMDBdIG9mIHF3b3JkOwp2YXIgTixRLGksaiA6cXdvcmQ7CiAgICBhLCBiLCBjIDphcnJheVsxLi4yMDAwXSBvZiBxd29yZDsKICAgIHAsIHQsIHZhbG9yZSwgaWQgOiBlbGVuY287CiAgICAKZnVuY3Rpb24gY2FsY29sYXZhbG9yZSAoYWEsYmIsY2MsdHQ6cXdvcmQpOiBxd29yZDsKCmJlZ2luCiAgIGNhbGNvbGF2YWxvcmU6PWFhKnR0KnR0K2JiKnR0K2NjOwplbmQ7ICAgCiAgICAKUHJvY2VkdXJlIHNjYW1iaWEgKHZhciBhYSxiYjogcXdvcmQpOwp2YXIgeDpxd29yZDsKYmVnaW4KICAgeDo9YWE7CiAgIGFhOj1iYjsKICAgYmI6PXg7CmVuZDsgIApQcm9jZWR1cmUgb3JkaW5hbWVudG8gKGVzdHJlbW9pLGVzdHJlbW9zOiBxd29yZDsgdmFyIHYgOiBlbGVuY287dmFyIHUgOiBlbGVuY287IG9yZGluYXRvOmJvb2xlYW4pOwp2YXIgaW5mLCBzdXAsIG1lZGlvOnF3b3JkOwogICAgcGl2b3QgOnF3b3JkOwpiZWdpbgogICAgaW5mOj1lc3RyZW1vaTsKICAgIHN1cDo9ZXN0cmVtb3M7CiAgICBtZWRpbzo9IChlc3RyZW1vaStlc3RyZW1vcykgZGl2IDI7CiAgICBwaXZvdDo9dlttZWRpb107CiAgICByZXBlYXQKICAgICAgaWYgKG9yZGluYXRvKSB0aGVuCiAgICAgICAgIGJlZ2luCiAgICAgICAgICAgIHdoaWxlICh2W2luZl0+cGl2b3QpIGRvICBpbmY6PWluZisxOwogICAgICAgICAgICB3aGlsZSAodltzdXBdPHBpdm90KSBkbyAgc3VwOj1zdXAtMTsKICAgICAgICAgZW5kOwogICAgICBpZiBpbmY8PXN1cCB0aGVuCiAgICAgICBiZWdpbgogICAgICAgICBzY2FtYmlhKHZbaW5mXSx2W3N1cF0pOwogICAgICAgICBzY2FtYmlhKHVbaW5mXSx1W3N1cF0pOwogICAgICAgICBpbmY6PWluZisxOwogICAgICAgICBzdXA6PXN1cC0xOwogICAgICAgZW5kOwogICAgdW50aWwgaW5mPnN1cDsKICAgIGlmIChlc3RyZW1vaTxzdXApIHRoZW4gb3JkaW5hbWVudG8oZXN0cmVtb2ksc3VwLHYsdSxvcmRpbmF0byk7CiAgICBpZiAoaW5mPGVzdHJlbW9zKSB0aGVuIG9yZGluYW1lbnRvKGluZixlc3RyZW1vcyx2LHUsb3JkaW5hdG8pOwplbmQ7ClByb2NlZHVyZSBvcmRpbmFtZW50byAoZXN0cmVtb2ksZXN0cmVtb3M6IHF3b3JkOyB2YXIgdiA6IGVsZW5jbzsgb3JkaW5hdG86Ym9vbGVhbik7CnZhciBpbmYsIHN1cCwgbWVkaW86cXdvcmQ7CiAgICBwaXZvdCA6cXdvcmQ7CmJlZ2luCiAgICBpbmY6PWVzdHJlbW9pOwogICAgc3VwOj1lc3RyZW1vczsKICAgIG1lZGlvOj0gKGVzdHJlbW9pK2VzdHJlbW9zKSBkaXYgMjsKICAgIHBpdm90Oj12W21lZGlvXTsKICAgIHJlcGVhdAogICAgICBpZiAob3JkaW5hdG8pIHRoZW4KICAgICAgICAgYmVnaW4KICAgICAgICAgICAgd2hpbGUgKHZbaW5mXTxwaXZvdCkgZG8gIGluZjo9aW5mKzE7CiAgICAgICAgICAgIHdoaWxlICh2W3N1cF0+cGl2b3QpIGRvICBzdXA6PXN1cC0xOwogICAgICAgICBlbmQ7CiAgICAgIGlmIGluZjw9c3VwIHRoZW4KICAgICAgIGJlZ2luCiAgICAgICAgIHNjYW1iaWEodltpbmZdLHZbc3VwXSk7CiAgICAgICAgIGluZjo9aW5mKzE7CiAgICAgICAgIHN1cDo9c3VwLTE7CiAgICAgICBlbmQ7CiAgICB1bnRpbCBpbmY+c3VwOwogICAgaWYgKGVzdHJlbW9pPHN1cCkgdGhlbiBvcmRpbmFtZW50byhlc3RyZW1vaSxzdXAsdixvcmRpbmF0byk7CiAgICBpZiAoaW5mPGVzdHJlbW9zKSB0aGVuIG9yZGluYW1lbnRvKGluZixlc3RyZW1vcyx2LG9yZGluYXRvKTsKZW5kOwpwcm9jZWR1cmUgY29udHJvbGxhICh2YXIgdjogZWxlbmNvOyB2YXIgdSA6IGVsZW5jbyk7CnZhciBoLCB3LCB4LCByaWNvcmRhIDogcXdvcmQ7CnRlbXAgOiBlbGVuY287CmJlZ2luCiAgICBoOj0xOyAgdzo9MTsgCiAgICB3aGlsZSAoaDw9TikgIGRvCiAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgIGlmIHZbaF09dltoKzFdIHRoZW4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW3ddOj11W2hdOyB3cml0ZWxuIChoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHc6PXcrMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICAgIGg6PWgrMTsKICAgICAgICAgICAgZW5kOyAgICAKICAgICAgICAgICAKICAgICAgICAgICAgZm9yIGg6PTEgdG8gdyBkbyB3cml0ZWxuKHRlbXBbd10pOyB3cml0ZWxuOwogICAgICAgICAgICByaWNvcmRhOj0gaC0xOyB3cml0ZWxuKCdyaWNvcmRhICAnLHJpY29yZGEsJyAgdyAgJyx3KTsKICAgICAgICAgICAgb3JkaW5hbWVudG8oMSx3LHRlbXAsdHJ1ZSk7CiAgICAgICAgICAgIHg6PTE7CiAgICAgICAgICAgIGZvciBoOj1yaWNvcmRhLXcrMSB0byByaWNvcmRhIGRvIGJlZ2luICB1W2hdOj10ZW1wW3hdOyB4Oj14KzE7ZW5kOwplbmQ7IAoKYmVnaW4KICAgICAgICAgKCphc3NpZ24oaW5wdXQsICAnaW5wdXQudHh0Jyk7ICByZXNldChpbnB1dCk7CiAgICAgICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsqKQkKICAgICAgICByZWFkbG4oTik7Cglmb3IgaTo9MSB0byBOIGRvIGJlZ2luIHJlYWRsbihhW2ldLGJbaV0sY1tpXSk7IGlkW2ldOj1pOyBlbmQ7CglyZWFkbG4oUSk7Cglmb3IgaTo9MSB0byBRIGRvCgkgICAgICAgICAgICAgIGJlZ2luCgkgICAgICAgICAgICAgICAgcmVhZGxuIChwW2ldLHRbaV0pOyAKCSAgICAgICAgICAgICAgICBmb3Igajo9MSB0byBOIGRvIHZhbG9yZVtqXTo9Y2FsY29sYXZhbG9yZShhW2pdLGJbal0sY1tqXSx0W2ldKTsKCSAgICAgICAgICAgICAgICBvcmRpbmFtZW50bygxLE4sdmFsb3JlLCBpZCwgdHJ1ZSk7CgkgICAgICAgICAgICAgICAgZm9yIGo6PTEgdG8gTiBkbyB3cml0ZWxuIChpZFtqXSk7IHdyaXRlbG47CgkgICAgICAgICAgICAgICAgY29udHJvbGxhICh2YWxvcmUsIGlkKTsKCSAgICAgICAgICAgICAgICBmb3Igajo9MSB0byBOIGRvIHdyaXRlbG4gKGlkW2pdKTsgd3JpdGVsbjsKCSAgICAgICAgICAgICAgICB3cml0ZWxuKGlkW3BbaV1dKTsKCSAgICAgICAgICAgICAgICBmb3Igajo9MSB0byBOIGRvIGJlZ2luIHZhbG9yZVtqXTo9MDsgaWRbal06PWo7IGVuZDsKCSAgICAgICAgICAgICAgZW5kOwoJICAgICAgICAgICAgICAKZW5kLg==