CF958A3 Death Stars (hard)

Description

The stardate is 2015, and Death Stars are bigger than ever! This time, two rebel spies have yet again given Heidi two maps with the possible locations of the Death Stars. Heidi has now received two maps with possible locations of $ N $ Death Stars. She knows that each of the maps is possibly corrupted, and may contain some stars that are not Death Stars. Furthermore, each of the maps was created from a different point of view. Hence, stars that are shown in one of the maps are rotated and translated with respect to the other map. Now Heidi wants to find out which of the stars shown in both maps are actually Death Stars, and the correspondence between the Death Stars on the two maps.

Input Format

The first line of the input contains an integer $ N $ ( $ 1000

Output Format

N/A

Explanation/Hint

The tests are generated in the following way: - The number of Death Stars $ N $ is pre-selected in some way. - The numbers of stars on the first and on the second map, $ N_{1} $ and $ N_{2} $ , are selected uniformly at random between $ 1.0×N $ and $ 1.5×N $ . - $ N $ Death Stars are generated at random, with coordinates between $ -10000 $ and $ 10000 $ . - Additional $ N_{1}-N $ and $ N2-N $ stars for the first and for the second map respectively are generated in the same way. - A translation vector $ (dx,dy) $ is generated, with $ dx $ and $ dy $ selected uniformly at random between $ -10000 $ and $ 10000 $ . Each point in the first map is translated by $ (dx,dy) $ . - A rotation angle $ θ $ is generated, with $ θ $ selected uniformly at random between $ 0 $ and $ 2π $ . Each point in the first map is rotated by an angle of $ θ $ around the origin. - Translations and rotations for the second map are generated and applied in the same way. - The order of points is randomly permuted for both maps. - The test case is saved, with each point written with two decimal digits of precision.