Задачи на собеседовании в Яндексе | Mozg.BY | Централизованное тестирование (ЦТ), задачи, тесты, олимпиады
Поступаем вместе!

Меню

Облако тегов:

Ссылки:





           

Задачи на собеседовании в Яндексе

Компания Яндекс предлагала соискателям на стажировку в департаменте разработки эти задания. Их нужно было решить и подробно письменно изложить ответ. Эти задачи являлись первым этапом отбора и позволяли отсеять тех, кто "не в теме". Прошедших первый этап приглашали на очное собеседование.

1) Дан класс
class Abb {
vector inc, mas;
void sort();
}

Вектор inc содержит в себе перестановку. Предложите эффективную реализацию функции sort() сортировки массива mas так, чтобы в результате из массива mas после перестановки inc получился упорядоченный по возрастанию массив. По возможности рекомендуется использовать библиотечные функции сортировки.

2) Некоторая функция работала от массива натуральных чисел в 1000 элементов 10 секунд. Сколько времени эта функция будет работать от массива в 2000 элементов, если она

  • сортировка пузырьком
  • пирамидальная сортировка
  • подсчитывает количество простых чисел в этом массиве

3) Написать функцию, рекурсивно выводящую двоичную запись числа.

4) Написать программу, которая берет строки из файла input.txt, сортирует их и записывает их в файл output.txt

5) В некой стране есть футбольные клубы, каждый из них в рамках чемпионата сыграл с каждым по одной игре. Ровно треть клубов имеют в своем активе ничьи. Ровно 75% из оставшихся не обошлись без поражений. Сколько всего было матчей, которые не кончились ничьей?

А вы прошли бы на второй тур собеседования?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

5ая задача про футбольные клубы

Неужели задача на столько простая, что никто даже не стал утруждать себя написанием ее решения? Могли бы и не полениться.
Вот мое решение и если оно не правильное, сообщите:

Скрытый текст: выделите для просмотра
Путь у нас N клубов.
1/3*N имеют после чемпионата ничьи. Обозначим это множество команд за A, количество команд в группе A пусть также будет обозначено за A.
3/4*2/3*N=1/2*N=B - группа команд, у которой в активе есть поражения.
Причем мн-во A не пересекается с множеством B. Т.е. команды из группы A не имеют ни одного поражения, а из B - ни одной ничьи.
Последняя группа C=N-1/2*N-1/3*N=1/6*N - это команды который имеют только выигрыши. Учитывая, что C не пересекается с A и не пересекается с B, клубы из группы C всегда играли на победу, даже если играли между собой, что возможно только, если в группе C есть только одна команда.
Значит C=1/6*N=1 -> N=6, A=2, B=3, C=1.
Группа A имеют ничьи, значит они могли сыграть с результатом ничья только между собой. А поскольку в A всего 2 клуба, была только одно ничья.
Всего было сыграно M=N*(N-1)/2=15. Минус 1 ничья.

ОТВЕТ: 14 матчей.

В условии

В условии задачи сказано, что каждая команда сыграла с каждой по одной игре, а в вашем решении получается:
команды имеющие ничьи сыграли только между собой?
а те, которые имеют поражения? они с кем играли?

рассуждения в

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

             
MOZG.by (C), 2007-2008 admin@mozg.by