#include<iostream>
#include <math.h>
using namespace std;
double wyznaczaniedlugosci(int x,int y);
void sortowanie (double tablica[],int ilosc_punktow,string nazwa[],int x[],int y[]);
int main()
{ int ilosc_testow;
cin>>ilosc_testow;
for(int i=0;i<ilosc_testow;i++)
{
int ilosc_punktow;
cin>>ilosc_punktow;
string nazwa[ilosc_punktow]; int x [ilosc_punktow],y [ilosc_punktow];
for(int j=0;j<ilosc_punktow;j++)
{
cin>>nazwa[j]>>x[j]>>y[j];
}
double dlugosc [ilosc_punktow];
for(int j=0;j<ilosc_punktow;j++)
{
dlugosc[j]=wyznaczaniedlugosci(x[j],y[j]);
}
sortowanie(dlugosc,ilosc_punktow,nazwa,x,y);
for(int j=0;j<ilosc_punktow;j++)
{
cout<<nazwa[j]<<" "<<x[j]<<" "<<y[j]<<endl;
}
cout<<endl;
}
return 0;
}
double wyznaczaniedlugosci(int x,int y)
{
return pow((pow(x,2)+pow(y,2)),(1/2.0));
}
void sortowanie (double tablica[],int ilosc_punktow, string nazwa[],int x[],int y[])
{ int posortowane=0;
for(int i=0;i<ilosc_punktow;i++)
{
for(int j=ilosc_punktow-1;j>posortowane;j--)
{
if(tablica[j]<tablica[i])
{
int chwilowa=tablica[i];
tablica [i]=tablica[j];
tablica[j]=chwilowa;
string chwilowa_nazwa = nazwa [i];
nazwa[i]=nazwa[j];
nazwa[j]=chwilowa_nazwa;
int chx = x[i];
x[i]=x[j];
x[j]=chx;
int chy = y[i];
y[i]=y[j];
y[j]=chy;
}
}
posortowane++;
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlIDxtYXRoLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZG91YmxlIHd5em5hY3phbmllZGx1Z29zY2koaW50IHgsaW50IHkpOwp2b2lkIHNvcnRvd2FuaWUgKGRvdWJsZSB0YWJsaWNhW10saW50IGlsb3NjX3B1bmt0b3csc3RyaW5nIG5hendhW10saW50IHhbXSxpbnQgeVtdKTsKCmludCBtYWluKCkKeyAgIGludCBpbG9zY190ZXN0b3c7CiAgICBjaW4+Pmlsb3NjX3Rlc3RvdzsKCiAgICAgICAgZm9yKGludCBpPTA7aTxpbG9zY190ZXN0b3c7aSsrKQogICAgICAgewogICAgICAgICAgIGludCBpbG9zY19wdW5rdG93OwogICAgICAgICAgIGNpbj4+aWxvc2NfcHVua3RvdzsKICAgICAgICAgICBzdHJpbmcgbmF6d2FbaWxvc2NfcHVua3Rvd107IGludCB4IFtpbG9zY19wdW5rdG93XSx5IFtpbG9zY19wdW5rdG93XTsKCiAgICAgICAgICAgICAgIGZvcihpbnQgaj0wO2o8aWxvc2NfcHVua3RvdztqKyspCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjaW4+Pm5hendhW2pdPj54W2pdPj55W2pdOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGRvdWJsZSBkbHVnb3NjIFtpbG9zY19wdW5rdG93XTsKICAgICAgICAgICAgICAgZm9yKGludCBqPTA7ajxpbG9zY19wdW5rdG93O2orKykKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZGx1Z29zY1tqXT13eXpuYWN6YW5pZWRsdWdvc2NpKHhbal0seVtqXSk7CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIHNvcnRvd2FuaWUoZGx1Z29zYyxpbG9zY19wdW5rdG93LG5hendhLHgseSk7CgogICAgICAgICAgICAgICBmb3IoaW50IGo9MDtqPGlsb3NjX3B1bmt0b3c7aisrKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICBjb3V0PDxuYXp3YVtqXTw8IiAiPDx4W2pdPDwiICI8PHlbal08PGVuZGw7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgY291dDw8ZW5kbDsKCgoKCiAgICAgICB9CgogIHJldHVybiAwOwp9Cgpkb3VibGUgd3l6bmFjemFuaWVkbHVnb3NjaShpbnQgeCxpbnQgeSkKewogICAgcmV0dXJuIHBvdygocG93KHgsMikrcG93KHksMikpLCgxLzIuMCkpOwp9CgoKdm9pZCBzb3J0b3dhbmllIChkb3VibGUgdGFibGljYVtdLGludCBpbG9zY19wdW5rdG93LCBzdHJpbmcgbmF6d2FbXSxpbnQgeFtdLGludCB5W10pCnsgICBpbnQgcG9zb3J0b3dhbmU9MDsKICAgIGZvcihpbnQgaT0wO2k8aWxvc2NfcHVua3RvdztpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqPWlsb3NjX3B1bmt0b3ctMTtqPnBvc29ydG93YW5lO2otLSkKICAgICAgICB7CiAgICAgICAgICAgIGlmKHRhYmxpY2Fbal08dGFibGljYVtpXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW50IGNod2lsb3dhPXRhYmxpY2FbaV07CiAgICAgICAgICAgICAgICB0YWJsaWNhIFtpXT10YWJsaWNhW2pdOwogICAgICAgICAgICAgICAgdGFibGljYVtqXT1jaHdpbG93YTsKCiAgICAgICAgICAgICAgICBzdHJpbmcgY2h3aWxvd2FfbmF6d2EgPSBuYXp3YSBbaV07CiAgICAgICAgICAgICAgICBuYXp3YVtpXT1uYXp3YVtqXTsKICAgICAgICAgICAgICAgIG5hendhW2pdPWNod2lsb3dhX25hendhOwoKICAgICAgICAgICAgICAgIGludCBjaHggPSB4W2ldOwogICAgICAgICAgICAgICAgeFtpXT14W2pdOwogICAgICAgICAgICAgICAgeFtqXT1jaHg7CgogICAgICAgICAgICAgICAgaW50IGNoeSA9IHlbaV07CiAgICAgICAgICAgICAgICB5W2ldPXlbal07CiAgICAgICAgICAgICAgICB5W2pdPWNoeTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwb3NvcnRvd2FuZSsrOwogICAgfQoKfQo=