Олимпиадный тренинг

Задача . 1. Падение с сопротивлением воздуха


Задача

Темы:

Падение с сопротивлением воздуха

Что моделирует программа

Нужно смоделировать падение тела с учётом того, что сопротивление воздуха возрастает с увеличением скорости. Расчёт выполняется дискретно: один шаг модели соответствует одной секунде.

Такие пошаговые модели применяют, когда состояние системы на следующем шаге зависит от уже достигнутой скорости или положения и прямой расчёт одним выражением становится неудобным.

Математическая модель

Пусть hn — высота тела, а vn — его скорость после n секунд. В начальный момент:

h0 = H,    v0 = 0.

Величина сопротивления воздуха на n-м шаге задаётся формулой

rn = ⌊C · vn2 / 10000⌋.

Скорость и высота через одну секунду вычисляются так:

vn+1 = max(0, vn + 10 − rn),

hn+1 = hn − vn+1.

Обозначение. Символ ⌊x⌋ означает целую часть числа x, то есть округление вниз до ближайшего целого.

Падение заканчивается в первый момент t, когда ht ≤ 0.

Что должна определить программа

  • время падения t;
  • максимальную скорость, достигнутую за время падения;
  • скорость vt на последнем шаге.

Входные данные

В одной строке вводятся два целых числа:

H C
  • H — начальная высота тела, 1 ≤ H ≤ 200000;
  • C — коэффициент сопротивления воздуха, 1 ≤ C ≤ 2000.

Выходные данные

Выведите три целых числа через пробел:

t vmax v
  • t — время падения;
  • vmax — максимальная скорость;
  • v — скорость на последнем шаге.

Примеры
№Входные данныеВыходные данные
1
100 50
5 39 39
2
1000 50
25 45 45
Статистика успешных решений по компиляторам
 Кол-во
Python20
Комментарий учителя