printРабочее место участника

printЗадачи

1165. Гонки на выживание

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Автомобили выстроились на стартовой прямой, ревя моторами. 3, 2, 1, старт! Машины устремились прямо вперед с одинаковой скоростью, но в разных направлениях. Интересно, что это сыпется сзади автомобилей? Какие-то колючки! Вот один из автомобилей, напоровшись на такую колючку, остановился с проколотыми шинами, а его водитель грозит кулаком более удачливому сопернику. Необходимо выяснить номера тех машин, которые уцелеют в такой гонке.
Все машины движутся с одинаковой скоростью только по прямой линии, стартуя с различных точек стартовой прямой. Если траектории автомобилей пересекаются, то та машина, которая приходит к точке пересечения раньше, продолжает движение, другая выбывает из соревнования. Если две машины приходят к точке пересечения одновременно, то движение продолжает та машина, которая во входном файле идет раньше (номер которой меньше). На рисунке показано, что машины, начинающие движение в точках с координатой 0, 10 и 50, уцелеют, а машины, стартующие в точках 20, 30, 40, остановятся.
В первой строке входного файла содержится целое число  – количество наборов исходных данных `K` (`1\ ≤\ K\ ≤\ 10`). Далее следует `K` блоков, каждый блок описывает одну гонку. В первой строке блока содержится целое число – количество машин `N` (`0\ <\ N\ ≤\ 50`), участвующих в гонке. Далее следует `N` строк, в каждой строке содержатся два целых числа, разделенных пробелом – координата машины на стартовой прямой `X_i` (`0\ ≤\ X_i\ ≤\ 1\ 000\ 000`) и направление движения машины `A_i` (`1\ ≤\ A_i\ ≤\ 179`, в градусах, см. рис.).
В выходной файл для каждой гонки из входного файла вывести две строки. В первой строке вывести количество уцелевших машин, а во второй строке номера уцелевших машин в порядке возрастания, разделяя их пробелами. Машины нумеруются от 0 до `N-1`.

Пример ввода

2
3
0 40
40 40
20 140
6
0 105
40 40
20 30
10 75
30 135
50 75

Пример вывода

2
0 1
3
0 3 5
loading