Submit | All submissions | Best solutions | Back to list |
MOS - Man of Steel |
Clark Kent is a young journalist who was born Kal-El on the alien planet before being rocketed to Earth as an infant by his scientist father Jor-El, moments before the planet's destruction and adopted as a child by Jonathan and Martha Kent. Raised with the values of his adoptive parents, he feels alienated because of his unique super human abilities.
Before the alien planet's destruction Jor-EL was killed by Dru-Zod( also known as General Zod ). Zod was sentenced to exile to the prison of Phantom Zone for his attempts to overtake the planet. Zod somehow managed to escape from his prison and now wants to kill the son of Jor-El i.e. Clark Kent. Now, Zod has reprogrammed the robot army guarding Phantom Zone and is planning to attack Earth starting with the city of Metropolis.
Fortunately, CAELOSS ( group of activists that employ electronic communication and super science cybernetics ) issued a warning for the Zod's upcoming attack to the Metropolis citizens. CAELOSS also found that Zod's Robots will be attacking the buildings such that pairwise distance of all buildings under attack is minimum. Clark after getting the information decided to defend his city and himself but he is unable to solve this complex problem of getting the Robot's attack configuration. To make an effective defence startegy he wants someone to give the best approximate result. No two Robot's will attack the same building.
Pairwise distance in set of N points is defined as : ∑[ distance( A, B) ] for all distinct pairs (A,B) where A and B are points in given set. Pair (A,B) is same as (B,A).
distance(A,B) = sqrt[ (A.x-B.x)2 + (A.y-B.y)2 ]
Input
First line : T ( No of test cases ) <= 20. Each test case starts with N and K i.e. number of buildings in Metropolis and number of Zod's Robots respectively. Next N lines have two integers i.e. x and y coordinates of each building.
3 <= N <= 10^5 and 2 <= K <= minimum(N, 1000) and ( 0 <= x <= 10^6, 0 <= y <= 10^6 ) and T*N <= 2*10^5
Output
For each test case output "Save" K and then K lines, each having index of the building in the input ( see example ). It is obvious but stating it explicitly that for each test case:
=>each building index in output should lie in range [1,N] .
=>output should have exactly k distinct building indices.
Otherwise solution will be judged as wrong.
Example
Input: 2
4 3
0 0
0 1
1 1
2 2
3 2
1 1
1 2
9 9
Output:
Save 3
1
2
4
Save 2
1
2
Score : Average of S/A over all test cases. [ minimize the score ]
S = sum of pairwise distance of buildings in output.
A = average distance of buildings in input from (0,0).
Score for the first test case = [pairwise distance between A(0,0), B(0,1), C(2,2)]/1.3106...
i.e [distance(A,B) + distance(B,C) + distance(C,A) ]/1.3106...
Added by: | XeRoN!X |
Date: | 2012-12-05 |
Time limit: | 1s-20s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 |
hide comments
2015-04-03 20:03:39 XeRoN!X
Fixed the bug in the judge. All comments lost on hiding-unhiding the problem. |