Directi Интервью | Набор 9 (на территории кампуса)

Опубликовано: 13 Сентября, 2021

Сесть на поезд
Вы спускаетесь по эскалатору, чтобы сесть на поезд метро. Сам эскалатор движется со скоростью Ve метров в минуту. Спускаться по эскалатору можно с относительной скоростью Vy метров в минуту. Длина эскалатора L метров. Поезда прибывают с интервалом T минут. Пусть t будет временем между вашим прибытием на станцию, если вы стоите на эскалаторе, и прибытием последнего поезда перед вашим прибытием. Предположим, что t - случайная величина, равномерно распределенная между 0 и T. Верните вероятность сесть на более ранний поезд, если вы решите спуститься по эскалатору вместо того, чтобы стоять на нем.

Вход :
Первая строка входных данных содержит целое число Tc, обозначающее количество тестовых примеров.
Каждый тестовый пример содержит следующие 4 строки

Ve - скорость эскалатора

Vy - ваша относительная скорость относительно эскалатора

L - длина эскалатора

T - Период времени поездов
Выход
Для каждого тестового примера выведите единственную строку, содержащую ожидаемую вероятность получения абсолютной или относительной ошибки менее 10 ^ -6.

Ограничения
0 <= Tc <= 5 * 10 ^ 7
1 <= Ve <= 1000
1 <= Vy <= 1000
1 <= L <= 10 ^ 5
1 <= Т <= 10 ^ 6

Пример
Вход:
2
10
10
20
2
10
10
100
4

Выход:
0,5
1.0

Объяснение
Пример случая 1. Если вы стоите на месте, вам понадобится 20/10 = 2 минуты, чтобы добраться до нижней части эскалатора. Если вы решите ходить, это сделает вас 20 / (10 + 10) = 1 минута. Во втором случае вы экономите 1 минуту и в 50% случаев это позволит вам успеть на поезд раньше.

Пример случая 2. Здесь, если вы решите идти пешком, а не стоять на месте, вы сэкономите 5 минут и обязательно сядете на поезд раньше.


Коробки Ириски

У вас есть N пакетов ириски, каждый из которых содержит разное количество ириски. Количество ирисов, содержащихся в i-м пакете, обозначено ci. Вам необходимо поместить эти ириски в коробки M так, чтобы каждая коробка содержала по крайней мере один пакет ириски, а максимальное количество ириски в коробке было минимальным.
Вы можете выбрать только последовательные пакеты ириски, которые нужно положить в коробку.

Вход
Первая строка входных данных содержит целое число T, обозначающее количество тестовых случаев.
Первая строка каждого тестового примера содержит два целых числа N, M, разделенных пробелом, обозначающих количество пакетов ириски и количество коробок соответственно. Вторая строка каждого тестового примера содержит N целых чисел, разделенных пробелом, c1, c2,…, cN, где ci обозначает количество ириски в i-м пакете ириски.

Выход
Для каждого тестового примера выведите единственную строку, содержащую максимальное количество ирисков в коробке. Также выведите -1, если такое присвоение пакетов ириски коробкам невозможно.

Ограничения
1 <= T <= 20
1 <= N, K <= 100000
1 <= ci <= 1000

Пример
Вход:
1
4 2
10 3 5 7

Выход:
13

Объяснение
Ниже приведены возможные варианты размещения пакетов с ирисками в коробках.
1. 10 [3 5 7]
2. 10 3 [5 7]
3. 10 3 5 [7]
Чтобы свести к минимуму максимальное количество ирисков в коробке, мы выбираем второе назначение, и, следовательно, на выходе должно быть 13


Угадай свой выход

Амр купил новую видеоигру «Угадай свой выход!». Цель игры - найти выход из лабиринта, который выглядит как идеальное двоичное дерево высоты h. Игрок изначально стоит в корне дерева, а выход из дерева находится в каком-то листовом узле.
Давайте проиндексируем все листовые узлы слева направо от 1 до 2 ^ h. Выход расположен в некотором узле n, где 1 <= n <= 2 ^ h, игрок не знает, где находится выход, поэтому он должен угадать выход!
Амр следует простому алгоритму выбора пути. Рассмотрим бесконечную командную строку «LRLRLRLRL…» (состоящую из чередующихся символов «L» и «R»). Amr последовательно выполняет символы строки, используя следующие правила:
1. Символ «L» означает «перейти к левому дочернему элементу текущего узла»;
2. Символ «R» означает «перейти к правому потомку текущего узла»;
3. Если целевой узел уже посещен, Amr пропускает текущую команду, в противном случае он переходит к целевому узлу;
4. Если Амр пропустил две последовательные команды, он возвращается к родительскому элементу текущего узла.
5. перед выполнением следующей команды;
6. Если он достиг листового узла, который не является выходом, он возвращается к родительскому узлу текущего
узел;
7. Если он достигает выхода, игра окончена.
Теперь Амр задается вопросом, если он будет следовать этому алгоритму, сколько узлов он собирается посетить, прежде чем достигнет выхода?
Вход
Первая строка содержит T количество тестов
В следующих T строках записано 2 целых числа h, n

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

Ограничения
1 <= T <= 10
1 <= h <= 50
1 <= n <= 2 ^ h Пример ввода: 1 2 2 Выход: 2 Пояснение Пример случая 1. Amr посетит первый корневой узел, затем корневой-> левый узел, а затем перейдет к корневому-> левому-> правому узлу, который является выход. следовательно, 2 узла посетили прежде, чем достигли выхода

Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью и отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше

Все практические задачи для Directi!

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию . Если вы готовы, проверьте свои навыки с помощью серий тестов TCS, Wipro, Amazon и Microsoft.