tasker
Тестовые задания
Выбор библиотек и фреймворков остается на усмотрение решающего.
Результатом выполнения считается ссылка на репозиторий.
Сервис хранения событий
Ваша задача написать сервис, который реализует API создания и завершения разных событий. События могут быть разных типов. В базе данных может быть только одно незавершенное событие одного типа.
Методы API
POST /v1/start
Тело запроса:
{
"type": "..."
}
type
может содержать только строчные буквы латинского алфавита и цифры
Метод создает событие переданного типа. Если в базе уже есть незавершенное событие переданного типа, то новое событие создавать не нужно, и в ответ не должно приходить сообщение об ошибке.
POST /v1/finish
Тело запроса:
{
"type": "..."
}
Метод завершает событие переданного типа. Если незавершенного события такого типа в БД не найдено, должна вернуться 404 ошибка.
База данных
База данных должна быть MongoDB.
События всех типов должны хранится отдельными документами в одной коллекции.
Пример документа в коллекции:
{
"_id": "...",
"type": "...",
"state": 0, // state 0 - для незавершенных событий, 1 - для завершенных
"started_at": "...", // Время начала события
"finished_at": "...", // Время завершения события
}
Если необходимо, документ может быть расширен.
Задача о кенгуру
Есть два кенгуру на оси координат, готовые прыгать в одном направлении (например, в
положительном направлении). Первый кенгуру находится в положении x1 и прыгает на
расстояние v1 за прыжок. Анологично с первым кенгуру, второй находится изначально в
положении x2 и прыгает на v2 за прыжок. По заданным начальным положениям и
скоростям можете ли вы определить окажутся ли они в одном месте в одно и тоже время?
Входные данные
Stdin с четырьми целыми числами, разделенными пробелом формата: x1 v1 x2 v2
Ограничения
- − 10000 ≤ x1, x2 ≤ 10000
- − 10000 ≤ v1, v2 ≤ 10000
Формат вывода
В stdout YES, если кенгуру могут встретится в одном месте в одно и тоже время. И NO в
обратном случае.
Примеры
Вход: 0 3 4 2
Результат: YES
Вход: 0 2 5 3
Результат: NO