7. Гонки на выживание
Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение 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