Skip to content

Instantly share code, notes, and snippets.

@mnacharov
Last active February 19, 2017 07:06
Show Gist options
  • Save mnacharov/cca5d000c1fc190e1f6c892772b99b80 to your computer and use it in GitHub Desktop.
Save mnacharov/cca5d000c1fc190e1f6c892772b99b80 to your computer and use it in GitHub Desktop.

Тестовое задание

Решите задачи

Сервисы начинающего переводчика

Заказчик вашей фирмы - крупный лингвистический центр. Они хотят предоставить своим клиентам удобный интерфейс для изучения новых слов, который клиенты смогли бы использовать в любое удобное время: в планах на год - десктоп, веб и мобильное приложение. Вы - разработчик бэкенда.

Заказчик подписал лицензионное соглашение с сервисом Yandex Translate, документация которого раположена на портале технологий яндекса.

На первом этапе Вам надо разработать сервис сохранающий результаты перевода, и использующий уже существующие данные для уменьшения обращений к Yandex Translate.

Предусмотреть следующие возможности:

  1. Кеш: если текст уже был переведён - использовать предыдущие результаты перевода
    • Направление перевода всегда одинаковое - en-ru
    • Максимальная длина текста для кеширования - 64 симовола.
    • Текст представлен без разметки (plain)
  2. Предоставление своего перевода: если перевод не устраивает - возможность его обновить
    • обновление происходит только в кеше
    • в личном кабинете будет возможность посмотреть оба варианта перевода
    • возможность удалить свой перевод
  3. Инвалидация кеша: пользователь может запросить перевод повторно. При этом
    • получает результат от сервиса перевода (даже если есть данные в кеше)
    • данные в кеше обновляются
    • свой перевод - сохраняется
  4. (*)Сервис авторизациии и настроек пользователя, только если предыдущие требования выполнены

Язык для реализации сервиса - Python. Формат выходных данных - json. Можно использовать любые библиотеки/программы.

Дорожки в аэропорту

Вы находитесь в аэропорту в точке 0. Корридор длиной X ведёт к выходу на посадку в самолёт. В корридоре есть движущиеся дорожки, каждая из которых двигается с некоторой скоростью Wi. Вы идёте по ним со скоростью Wi + <ваша скорость>. Дорожки не пересекаются: в любом месте корридора есть только одна дорожка; но они могут следовать друг за другом.

Ваша нормальная скорость - S. Но, так как до вылета осталось уже не много, Вы можете немного пробежаться со скоростью R, максимум t секунд. При этом, можно как пробежаться 1 раз, так и разбить время t на интервалы.

За какое минимальное временя Вы сможете добраться до выхода на посадку?

Входные параметры

Текстовый файл. Первая строка содержит пять натуральный числел: X - длина корридора в метрах (м), S - скорость ходьбы, метры в секунду (м/с), R - скорость бега (м/с), t - максимальное время пробежки, секунды (с) и N - число дорожек.

Следующие N строк содержат три натуральных числа: Bi, Ei и Wi - начало и конец дорожки(м) и скорость движения дорожки(м/с).

Ограничения:

  • 1 ≤ S < R ≤ 100
  • 1 ≤ wi ≤ 100
  • 0 ≤ Bi < Ei ≤ X
  • Ei ≤ Bi+1
  • 1 ≤ t ≤ 100
  • 1 ≤ X ≤ 100
  • 1 ≤ N ≤ 20

Ответ

Минимальное число секунд необходимое чтобы добраться до выхода на посадку. Допустимая погрешность - 10-6.

Пример

input.txt

10 1 4 1 2
4 6 1
6 9 2

console 4.000000

Кто порвал мячик?

Тренер оставил девять ребят играть в футбол. Когда он вернулся мяч был порван. На вопрос "Кто это сделал?" были получены следующие ответы:

  • Андрей: Это сделал Денис
  • Борис: Это неправда
  • Владимир: Я порвал
  • Глеб: Это сделал либо Вова, либо Захар
  • Денис: Борис лжёт
  • Ефим: Это Вова!
  • Женя: Нет, Вова этого не делал
  • Захар: Вова и я в этом не участовали
  • Ираклий: Захар прав, но Денис тоже не виноват

Если из этих девяти высказываний три, и только три истинны, кто порвал мяч?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment