Выбор библиотек и фреймворков остается на усмотрение решающего.
Результатом выполнения считается ссылка на репозиторий.
Ваша задача написать сервис, который реализует 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