import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
class Spoj
{
{
int test
= Integer.
parseInt(br.
readLine()); while (test > 0)
{
int liczba_punktow
= Integer.
parseInt(br.
readLine()); Wspolrzedna[] tab = new Wspolrzedna[liczba_punktow];
for (int i = 0; i < liczba_punktow; i++)
{
String[] str_tab
= br.
readLine().
split(" "); tab
[i
] = new Wspolrzedna
(str_tab
[0],
Integer.
parseInt(str_tab
[1]),
Integer.
parseInt(str_tab
[2])); }
Sortowanie(tab);
for (int i = 0; i < liczba_punktow; i++)
pw.printf("%s %d %d\n", tab[i].nazwa, tab[i].x, tab[i].y);
String to_nic_nie_robi_poza_enterem
= br.
readLine(); to_nic_nie_robi_poza_enterem = "Musze cos tu wpisac";
pw.println();
--test;
}
}
public static void Sortowanie(Wspolrzedna[] tab)
{
int size = tab.length - 1;
for (int i = 0; i < tab.length - 1; i++)
{
for (int j = 0; j < size; j++)
{
if (tab[j].iloczyn > tab[j + 1].iloczyn)
{
Wspolrzedna temp = tab[j];
tab[j] = tab[j + 1];
tab[j + 1] = temp;
}
}
size--;
}
}
}
class Wspolrzedna
{
int x;
int y;
int iloczyn;
public Wspolrzedna
(String n,
int x,
int y
) {
nazwa = n;
this.x = x;
this.y = y;
iloczyn
= Math.
abs(this.
x) * Math.
abs(this.
y); }
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CmltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwppbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CgpjbGFzcyBTcG9qCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbgogICAgewogICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKICAgICAgICBQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0LCB0cnVlKTsKICAgICAgICBpbnQgdGVzdCA9IEludGVnZXIucGFyc2VJbnQoYnIucmVhZExpbmUoKSk7CiAgICAgICAgd2hpbGUgKHRlc3QgPiAwKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGxpY3piYV9wdW5rdG93ID0gSW50ZWdlci5wYXJzZUludChici5yZWFkTGluZSgpKTsKICAgICAgICAgICAgV3Nwb2xyemVkbmFbXSB0YWIgPSBuZXcgV3Nwb2xyemVkbmFbbGljemJhX3B1bmt0b3ddOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpY3piYV9wdW5rdG93OyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0cmluZ1tdIHN0cl90YWIgPSBici5yZWFkTGluZSgpLnNwbGl0KCIgIik7CiAgICAgICAgICAgICAgICB0YWJbaV0gPSBuZXcgV3Nwb2xyemVkbmEoc3RyX3RhYlswXSwgSW50ZWdlci5wYXJzZUludChzdHJfdGFiWzFdKSwgSW50ZWdlci5wYXJzZUludChzdHJfdGFiWzJdKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU29ydG93YW5pZSh0YWIpOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpY3piYV9wdW5rdG93OyBpKyspCiAgICAgICAgICAgICAgICBwdy5wcmludGYoIiVzICVkICVkXG4iLCB0YWJbaV0ubmF6d2EsIHRhYltpXS54LCB0YWJbaV0ueSk7CiAgICAgICAgICAgIFN0cmluZyB0b19uaWNfbmllX3JvYmlfcG96YV9lbnRlcmVtID0gYnIucmVhZExpbmUoKTsKICAgICAgICAgICAgdG9fbmljX25pZV9yb2JpX3BvemFfZW50ZXJlbSA9ICJNdXN6ZSBjb3MgdHUgd3Bpc2FjIjsKICAgICAgICAgICAgcHcucHJpbnRsbigpOwogICAgICAgICAgICAtLXRlc3Q7CiAgICAgICAgfQoKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgU29ydG93YW5pZShXc3BvbHJ6ZWRuYVtdIHRhYikKICAgIHsKICAgICAgICBpbnQgc2l6ZSA9IHRhYi5sZW5ndGggLSAxOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFiLmxlbmd0aCAtIDE7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc2l6ZTsgaisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAodGFiW2pdLmlsb2N6eW4gPiB0YWJbaiArIDFdLmlsb2N6eW4pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgV3Nwb2xyemVkbmEgdGVtcCA9IHRhYltqXTsKICAgICAgICAgICAgICAgICAgICB0YWJbal0gPSB0YWJbaiArIDFdOwogICAgICAgICAgICAgICAgICAgIHRhYltqICsgMV0gPSB0ZW1wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHNpemUtLTsKICAgICAgICB9CiAgICB9Cn0KCmNsYXNzIFdzcG9scnplZG5hCnsKICAgIFN0cmluZyBuYXp3YTsKICAgIGludCB4OwogICAgaW50IHk7CiAgICBpbnQgaWxvY3p5bjsKCiAgICBwdWJsaWMgV3Nwb2xyemVkbmEoU3RyaW5nIG4sIGludCB4LCBpbnQgeSkKICAgIHsKICAgICAgICBuYXp3YSA9IG47CiAgICAgICAgdGhpcy54ID0geDsKICAgICAgICB0aGlzLnkgPSB5OwogICAgICAgIGlsb2N6eW4gPSBNYXRoLmFicyh0aGlzLngpICogTWF0aC5hYnModGhpcy55KTsKICAgIH0KfQ==