/*
program: sorotwanie punktow
date:25.10.2016
author: kyubu
version 2.0
*/
#include <iostream>
#include <math.h>
using namespace std;
struct punkt
{
public:
int odleglosc,x,y;
string nazwa;
};
int main()
{
int t; // liczba przypadkow
cin >> t;
punkt ** tablica = new punkt * [t];
short * ntablica = new short [t];
for(int z=0;z<t;z++)
{
int n; //liczba punktow
cin >> n;
tablica[z] = new punkt[n];
ntablica[z]=n;
for (int x=0;x<n;x++)
{
cin>>tablica[z][x].nazwa>>tablica[z][x].x>>tablica[z][x].y;
tablica[z][x].odleglosc=sqrt(pow(tablica[z][x].x,2)*pow(tablica[z][x].y,2));
}
//sortowanie bÄ…belkowe
int sort=1;
while(sort>0)
{
sort=0;
for (int x=0;x<n;x++)
{
if(tablica[z][x].odleglosc>tablica[z][x+1].odleglosc)
{
punkt temp;
temp=tablica[z][x];
tablica[z][x]=tablica[z][x+1];
tablica[z][x+1]=temp;
sort++;
}
}
}
}
//prezentacja
for(int z=0;z<t;z++)
{
for (int x=0;x<ntablica[z];x++) cout<<tablica[z][x].nazwa<<' '<<tablica[z][x].x<<' '<<tablica[z][x].y<<endl;
cout<<endl;
}
return 0;
}
LyoKcHJvZ3JhbTogc29yb3R3YW5pZSBwdW5rdG93CmRhdGU6MjUuMTAuMjAxNgphdXRob3I6IGt5dWJ1CnZlcnNpb24gMi4wCiovCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPG1hdGguaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBwdW5rdAp7CnB1YmxpYzoKICAgIGludCBvZGxlZ2xvc2MseCx5OwogICAgc3RyaW5nIG5hendhOwoKfTsKaW50IG1haW4oKQp7CiAgICBpbnQgdDsgLy8gbGljemJhIHByenlwYWRrb3cKICAgIGNpbiA+PiB0OwogICAgcHVua3QgKiogdGFibGljYSA9IG5ldyBwdW5rdCAqIFt0XTsKICAgIHNob3J0ICogbnRhYmxpY2EgPSBuZXcgc2hvcnQgW3RdOwogICAgZm9yKGludCB6PTA7ejx0O3orKykKICAgIHsKICAgICAgICBpbnQgbjsgLy9saWN6YmEgcHVua3RvdwogICAgICAgIGNpbiA+PiBuOwogICAgICAgIHRhYmxpY2Fbel0gPSBuZXcgcHVua3Rbbl07CiAgICAgICAgbnRhYmxpY2Fbel09bjsKICAgICAgICBmb3IgKGludCB4PTA7eDxuO3grKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+dGFibGljYVt6XVt4XS5uYXp3YT4+dGFibGljYVt6XVt4XS54Pj50YWJsaWNhW3pdW3hdLnk7CiAgICAgICAgICAgIHRhYmxpY2Fbel1beF0ub2RsZWdsb3NjPXNxcnQocG93KHRhYmxpY2Fbel1beF0ueCwyKSpwb3codGFibGljYVt6XVt4XS55LDIpKTsKICAgICAgICB9CiAgICAgICAgLy9zb3J0b3dhbmllIGLEhWJlbGtvd2UKICAgICAgICBpbnQgc29ydD0xOwogICAgICAgIHdoaWxlKHNvcnQ+MCkKICAgICAgICB7CiAgICAgICAgICAgIHNvcnQ9MDsKICAgICAgICAgICAgZm9yIChpbnQgeD0wO3g8bjt4KyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHRhYmxpY2Fbel1beF0ub2RsZWdsb3NjPnRhYmxpY2Fbel1beCsxXS5vZGxlZ2xvc2MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcHVua3QgdGVtcDsKICAgICAgICAgICAgICAgICAgICB0ZW1wPXRhYmxpY2Fbel1beF07CiAgICAgICAgICAgICAgICAgICAgdGFibGljYVt6XVt4XT10YWJsaWNhW3pdW3grMV07CiAgICAgICAgICAgICAgICAgICAgdGFibGljYVt6XVt4KzFdPXRlbXA7CiAgICAgICAgICAgICAgICAgICAgc29ydCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vcHJlemVudGFjamEKICAgIGZvcihpbnQgej0wO3o8dDt6KyspCiAgICB7CiAgICAgICAgZm9yIChpbnQgeD0wO3g8bnRhYmxpY2Fbel07eCsrKSBjb3V0PDx0YWJsaWNhW3pdW3hdLm5hendhPDwnICc8PHRhYmxpY2Fbel1beF0ueDw8JyAnPDx0YWJsaWNhW3pdW3hdLnk8PGVuZGw7CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==