Help phunter's friend
Time Limit: 3000ms
Memory Limit: 65536kb
DescriptionThe former board master of Algorithm of USTCbbs, id=phunter, majoring in high energy physics, is now working at Large Hadron Collider (LHC), at Geneva,Switzerland for his PhD. One day, a friend, Pieter, came to his office and seek help to search for a new particle.
High energy people use decay-mode to find new particles. Pieterproposed a new particle called Hoggs (not Higgs), which can decay to 4 photon particles. In experimental point of view, this decay-mode shows 4 charge-less particles that these 4 particles come from the same point at the center of the collider, then shoot out to 4 close directions. For every particle, two values, Eta and Phi, are used to define its direction. Among all the particles, one and 3 its closest neighbors will be listed in a group, as the a candidate of Hoggs. The distance between two particles is defined as R=sqrt(Eta*Eta+Phi*Phi).
Phunter says, why not just use brute force, is it OK? Unfortunately, it is LHC. There are too many particles and large quantity of data to process. Speed is vital. Pieter has tested that it is super slow if brute force for O(n*n). Can you help Pieter to speed it up, and let Pieter buy phunter a coffee?
InputThe input consists of a single test case, and all of it's lines follow the same format. Each line has three values separated by an amount of white space. The first value is the unique id number of that particle, expressed as an integer. The second value is the Eta, as double. The third and last value is the Phi, expressed as double. Every particle has its unique Eta and Phi values. Each line ends with a single new line, except for the last line of the file, which may or may not have a terminating new line. The input file is well formed. There won't be more than 20000 lines.
OutputIn the order presented in the input file, output the nearest three particles for each particle. Each line of output should start with the integer id of the particle followed by a single space character, and then the list of three nearest other particle ids followed by a single new line. Even the last line of the output should terminate in a new line. This list should be comma-delimited, with no spaces. The list must be in order of proximity, with the closest of the three being first, and the farthest of the three being last.
1 0.0 0.0 2 10.1 -10.1 3 -12.2 12.2 4 38.3 38.3 5 79.99 179.99
1 2,3,4 2 1,3,4 3 1,2,4 4 1,2,3 5 4,3,1