Problem A. Gorn

Input file:input.txt   Time limit:1 sec
Output file:output.txt   Memory limit:256 Mb
Maximum points:100  

Statement

Wilhelm plays Gorn game in virtual reality, fighting against N gladiators on the arena. He has a bow and an infinite number of arrows and never misses an enemy with a shot.

When Wilhelm hits an enemy gladiator for the first time, he inflicts D points of damage, so gladiator loses D hit points. Every following hit on the same gladiator increases damage by K points due to weakening of the gladiator's armor. When hitting a new gladiator, damage again starts with D and increases after each hit. Gladiator dies when his hit points become zero or negative.

What is the minimum number of arrows Wilhelm must spend to kill all gladiators?

Constraints

1 ≤ N ≤ 104

1 ≤ D≤ 105

1 ≤ K ≤ 103

Sample tests

No. Input file (input.txt) Output file (output.txt)
1
4 1 1
1 2 3 4
8

Задача B. Мортира

Входной файл:input.txt   Ограничение времени:1 сек
Выходной файл:output.txt   Ограничение памяти:256 Мб
Максимальный балл:100  

Условие

Вы участвуете в разработке игры в виртуальной реальности жанра Tower Defense. В играх подобного жанра, целью является защита основного замка от наступления вражеских юнитов.

Одно из защитных орудий в игре — мортира. Это пушка которая может регулировать угол наклона в пределах от 45 до 90 градусов от земли. Сама себе пушка урон нанести не может.

Как разработчику, вам поручили задание разработать искусственный интеллект для этого орудия. На начальных уровнях искусственный интеллект должен быть достаточно прост, вплоть до того, что он ничего не должен знать о параметрах орудия. Орудие имеет ограниченное количество боеприпасов — 20 зарядов. До того как боезапас иссякнет, пушка должна поразить хотя бы одну цель. Все, что может узнать ваш ИИ — это расстояние, на котором находится цель, и расстояние, на которое улетел снаряд после выстрела. Искусственный интеллект может управлять лишь углом наклона орудия.

Ваши коллеги уже создали для вас простую тестовую сцену, и даже написали за вас API. Вам лишь необходимо реализовать интерфейс. Ссылка на репозиторий с проектом: https://github.com/Lukaviy/AI-for-defense.git.

Также, ваши коллеги еще не до конца уверены в выборе игрового движка. Возможно в скором будущем они перейдут на другой. Поэтому они убедительно просят вас воздержаться от использования функций, зависимых от Unity. (Вместо Mathf использовать System.Math, и т.д.)

Необходимо реализовать класс CannonAI со следующим интерфейсом:

     
        public class CannonAI : ICannonAI
        {
            // Расстояние на котором находится цель
            void SetTarget(double distance);
            // Угол наклона в градусах в который нужно установить пушку перед выстрелом
            double GetShootAngle();
            // Информация о дальности полета снаряда
            void FeedbackHitDistance(double distance);
        }
      
   

Формат выходного файла

Файл с решением должен содержать только реализацию класса CannonAI. В качестве среды программирования необходимо выбирать C#.

Ограничения

Гарантируется, что пушка всегда может достать до противника.

45 ≤ Angle ≤ 90

10 ≤ Distance ≤ 106


Задача C. RollerBall-1

Автор:Mikhail Babich   Ограничение времени:30 сек
Входной файл:input.txt   Ограничение памяти:256 Мб
Выходной файл:output.txt  
Максимальный балл:100  

Условие

Юный программист Вася решил поиграть в RollerBall. Цель игры — собрать как можно больше монет, которые находятся в лабиринте. Для того, чтобы взять монетку, её границы нужно пересечь мячом, которым Вася может управлять. У мяча есть энергия, которая расходуется на каждом шаге.

Вася хочет собрать очень много монет и для этого решил написать программу, которая бы управляла мячом и сама собирала все монеты в лабиринте. К сожалению, Вася очень плохо знает C# и просит Вас ему помочь. Проект https://github.com/BabichMikhail/NTI_TaskC_Maze, который написал Вася, уже содержит игру и умеет вводить и выводить файлы нужных форматов. Вам осталось реализовать класс AutoBallControl для управления мячом.

Первый тест совпадает с примером, содержащимся в файле input.txt в репозитории проекта.

Формат входного файла

Входной файл содержит 5 целых чисел S, R, C, N, E — номер (seed) лабиринта, количество строк и столбцов лабиринта, количество монет, количество энергии у мяча.

Формат выходного файла

Файл с решением должен содержать реализацию класса AutoBallControl.

Ограничения

0 ≤ S ≤ 107

1 ≤ R ≤ 600

1 ≤ C ≤ 600

2 ≤ R * C ≤ 600

0 ≤ N ≤ 9

0 ≤ E ≤ 3*104


Problem F. RollerBall-2

Author:Mikhail Babich   Time limit:30 sec
Input file:input.txt   Memory limit:256 Mb
Output file:output.txt  
Maximum points:100  

Statement

Young programmer Vasya like game RollerBall. He want take part in competition where participants compete in passage of maze for speed. Game goal - take coin for minimum step count. In order to take a coin, ball must cross coin boundaries. Ball has energy which spent on every step.

Вася очень хочет победить и для этого решил написать программу, которая бы управляла мячом и сама собрала бы монету в лабиринте. Вася уже лучше знает C#, и он хотел использовать программу из предыдущего режима, но в новом режиме программа управляет не скоростью, а вращением мяча, поэтому Вася снова просит Вас ему помочь. Проект, который написал Вася, уже содержит игру и умеет вводить и выводить файлы нужных форматов. Вам осталось реализовать класс AutoBallControl для управления мячом.

Задача будет проверятся на одном тесте, содержащимся в репозитории проекта. Вам необходимо собрать монету за минимальное количество шагов.

Output file format

Файл с решением должен содержать реализацию класса AutoBallControl.


0.104s 0.004s 19