Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | spacepin.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | spacepin.out | |||
Максимальный балл: | 100 |
На планете Плюк открылся новый космический кегельбан. Поле для кегельбана представляет собой бесконечную плоскость, на которой расставлены кегли.
Каждая кегля представляет собой высокий цилиндр с основанием в виде круга радиусом r метров. Все кегли одинаковые. Кегли расставлены по следующим правилам. Кегли образуют n рядов, в первом ряду стоит одна кегля, во втором — две, и так далее. В последнем n-м ряду стоит n кеглей. Введем на плоскости систему координат таким образом, чтобы единица измерения была равна одному километру. Центр единственной кегли в первом ряду находится в точке (0, 0). Центры кеглей во втором ряду находятся в точках (−1, 1) и (1, 1). Таким образом, центры кеглей в i-м ряду находятся в точках с координатами (−(i − 1), i − 1), (−(i − 3), i − 1), …, (i − 1, i − 1).
Игра происходит следующим образом. Используется шар с радиусом q метров. Игрок выбирает начальное положение центра шара (xc, yc) и вектор направления движения шара (vx, vy). После этого шар помещается в начальную точку и двигается, не останавливаясь, в направлении вектора (vx, vy). Считается, что шар сбил кеглю, если в процессе движения шара имеет место ситуация, когда у шара и кегли есть общая точка. Сбитые кегли не меняют направления движения шара и не сбивают соседние кегли при падении.
На рисунке приведен пример расположения кеглей для r = 500, n = 4 и шара для q = 1000, xc = −2, yc = −2, vx = 1, vy = 1.
Требуется написать программу, которая по заданным радиусу кегли r, количеству рядов кеглей n, радиусу шара q, его начальному положению (xc, yc) и вектору направления движения (vx, vy) определяет количество кеглей, сбитых шаром.
Рисунок справа показывает, какие кегли будут сбиты (такие кегли обозначены "х").
Правильные решения для тестов, в которых 1 ≤ n ≤ 1000 и vx = 0, будут оцениваться из 20 баллов.
Правильные решения для тестов, в которых 1 ≤ n ≤ 1000 и vx ≠ 0, будут оцениваться еще из 20 баллов.
Правильные решения для тестов, в которых 1000 < n ≤ 200 000 и vx = 0, будут оцениваться еще из 20 баллов.
Чтобы получить оставшиеся 40 баллов, решение должно правильно работать также для тестов, в которых 1000 < n ≤ 200 000 и vx ≠ 0.
Первая строка входного файла содержит два целых числа: r и n, разделенных ровно одним пробелом.
Вторая строка входного файла содержит целое число q.
Третья строка входного файла содержит два целых числа xc и yc, разделенных ровно одним пробелом.
Четвертая строка входного файла содержит два целых числа vx и vy, разделенных ровно одним пробелом.
Выходной файл должен содержать одно целое число — количество сбитых кеглей.
1 ≤ r ≤ 700, 1 ≤ n ≤ 200 000
1 ≤ q ≤ 109
−106 ≤ xc ≤ 106, −106 ≤ yc, 1000 × yc < −(r + q)
−106 ≤ vx ≤ 106, 0 < vy ≤ 106
№ | Входной файл (spacepin.in ) |
Выходной файл (spacepin.out ) |
---|---|---|
1 |
|
|