Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Объект в компьютерной игре должен переместиться по горизонтали из точки с x-координатой A в точку с x-координатой B (B > A) за время, в точности равное T кадрам анимации.
Пусть за кадр с номером i объект перемещается вправо на целое число пикселей di (таким образом, d1 + d2 + ⋯ + dT = B − A). Для обеспечения плавности анимации ускорение объекта не должно превосходить одного пикселя на кадр за кадр. То есть для любого i > 0 должно выполняться |di − di−1| ≤ 1. Будем считать, что d0 = 0.
Напишите программу, которая по данным A, B и T находит подходящий набор di или определяет, что это сделать невозможно.
Входной файл содержит целые числа A B T.
Выходной файл должен содержать T целых чисел di. Если существует несколько решений, выведите любое из них. Если решения не существует, выведите единственное число −1.
0 ≤ A < B ≤ 109, 1 ≤ T ≤ 10000
Баллы за первую подзадачу начисляются только в случае, если все тесты этой подзадачи успешно пройдены. Баллы за вторую подзадачу начисляются за каждый тест в отдельности, но только в случае прохождения всех тестов первой подзадачи.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи |
---|---|---|---|
T | |||
1 | 25 | T ≤ 10 | |
2 | 75 | T ≤ 10000 | 1 |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Вы — начинающий разработчик игрового движка. Не успели освоиться, как заказчик потребовал поддержку VR, к тому же попросил продемонстрировать его работу уже завтра!
Коллективом проектных менеджеров было решено разработать следующую демонстрацию. На игровом поле будут заданы положения N зарядов, также будут даны значения зарядов в кулонах. Задание заключается в том, чтобы промоделировать перемещение зарядов под действием сил электростатического взаимодействия.
Решено сначала написать двумерный прототип, т.е. каждый заряд имеет две координаты в метрах. Также решено промоделировать заданное число M шагов, длительностью T секунд каждый. Чтобы упростить моделирование, предполагается, что в течение каждого шага, действующие на заряды силы не изменяются. Перед каждым шагом необходимо пересчитать действующие на каждый заряд силы согласно закону Кулона. Согласно этому закону сила взаимодействия каждой пары зарядов по модулю будет равна F1,2 = k|q1| ⋅ |q2|r21,2. Сила будет направлена в сторону взаимодействующего заряда, в случае, если его значение противоположно по знаку, и в обратную сторону — иначе. Для простоты коэффициент k необходимо взять численно равным 1. Массу всех зарядов считать одинаковой, равной 1 кг.
Предлагается также использовать уравнение движения x = x0 + vx 0 ⋅ T + ax ⋅ T22, где x0, vx 0 — положение и скорость в момент времени перед шагом (аналогичные параметры для координаты y), ax — компонента x ускорения, которую можно вычислить из второго закона Ньютона m ⋅ ax = Fx, где Fx — компонента x силы кулоновского взаимодействия (аналогично с компонентой y). Время T — это длительность шага.
Все заряды могут проходить сквозь друг в друга. Чтобы избежать деления на ноль при вычислении закона Кулона, в знаменателе при вычислении решено брать максимум из 0.1 и r2.
Осталось дело за малым — написать код!
Первая строка входного файла содержит 2 целых числа N, M и 1 вещественное число T — количество зарядов, количество шагов, и длительность каждого шага моделирования соответственно.
В каждой из N последующих строк заданы 3 вещественных числа xi, yi, qi, разделенных пробелом — координаты и значение i-го заряда соответственно.
В выходной файл выведите M раз по N строк — результаты моделирования после каждого шага. В каждой строке по две координаты xi,j и yi,j j-го заряда в момент времени после i-го шага. Координаты будут считаться верными, если либо абсолютная, либо относительная погрешность не превосходит 10−2 (второй знак после запятой).
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Лабиринт в компьютерной игре представлен полем из H строк по W символов каждая,
где каждый символ равен либо '.
' (ASCII 46), что означает свободную клетку,
либо '#
' (ASCII 35), что означает стену.
Игроки появляются в случайной свободной клетке лабиринта и могут за один ход
перемещаться на любую из соседних по горизонтали или вертикали свободных клеток.
Обозначим перемещения игрока буквами N
, S
, W
, E
для направлений на север, юг, запад и восток соответственно.
Направление взгляда игрока совпадает с направлением последнего сделанного им хода.
Перед первым ходом игрок смотрит на север.
Игра построена на основе трёхмерного графического движка с видом от первого лица. Поэтому в каждый момент времени игрок видит только содержимое клетки непосредственно перед ним в направлении его взгляда, а также двух клеток непосредственно слева и справа от него. Один из игроков опубликовал видео своих перемещений по игровому миру. В результате анализа видео было получено количество шагов N и символы Li Fi Ri для для каждого хода, обозначающие содержимое клеток слева, впереди и справа перед i-м ходом игрока.
Вокруг лабиринта находится неограниченное поле из пустых клеток, но известно, что игрок никогда не покидал пределы лабиринта.
Напишите программу, которая определит начальную позицию и последовательность ходов игрока или выяснит, что это сделать невозможно.
Первая строка входного файла содержит целые числа H W.
Следующие H строк содержат по W символов .
и #
каждая — описание лабиринта.
Строка номер H + 2 содержит целое число N.
Следующие N строк состоят из трёх символов Li Fi Ri каждая.
Первая строка выходного файла должна содержать два целых числа
x y — столбец и строку начальной позиции игрока (нумерация начинается с 1).
Вторая строка должна состоять из N символов
N
, S
, W
, E
— последовательность ходов игрока.
Если существует несколько решений, выведите любое из них.
Если решения не существует, выведите единственное число −1.
1 ≤ W, H ≤ 100, 1 ≤ N ≤ 1000, 1 ≤ x ≤ W, 1 ≤ y ≤ H
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|