Vitaly1996 / test_tasks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Test Tasks

Задача 1.

Сейчас активно развивается новая история, основателем которой является Профессор А.С. Багиров. Он выяснил, что на протяжении многих лет на земле вместе с людьми существовали ящеры. Строительство пирамид, захват Байкала и еще много разных событий произошли благодаря ящерам. Учёные ещё не выяснили, сколько времени ящеры существовали на земле. Они находят разные данные в виде даты начала и даты окончания, и чтобы проверить их на корректность, необходимо посчитать, сколько дней ящеры существовали для двух конкретных дат. Календарь ящеров очень похож на григорианский, лишь с тем исключением, что там нет високосных годов. Вам даны дата начала и дата окончания существования ящеров, нужно найти количество полных дней и секунд в неполном дне, чтобы учёные смогли оценить, насколько даты корректны.

Задача 2.

Два друга A и B постоянно играют в коллекционную карточную игру (ККИ), поэтому у каждого игрока скопилась довольно большая коллекция карт. Каждая карта в данной игре задаётся целым числом (одинаковые карты — одинаковыми числами, разные карты — разными). Таким образом коллекцию можно представить как неупорядоченный набор целых чисел (с возможными повторениями). После каждого изменения коллекций друзья вычисляют показатель разнообразия следующим образом: • A и B выкладывают на стол все карты из своей коллекции в два раздельных ряда; • Далее друзья итеративно делают следующее:

  1. Если среди лежащих на столе карт игрока A есть такая же карта, как и среди лежащих карт игрока B — каждый игрок убирает данную карту со стола;
  2. Если таковых совпадений нет — процесс заканчивается. • Разнообразием коллекций друзья называют суммарное количество оставшихся карт на столе. Обратите внимание: друзья убирают карты только со стола, карты не удаляются из коллекций при вычислении разнообразия. Даны начальные состояния коллекций игроков, а также Q изменений их коллекций. После каждого изменения необходимо вычислить разнообразие коллекций друзей.

Задача 3.

Петя пришел на стажировку, и первая его задача была познакомиться с SQL. У Пети есть табличка, состоящая из N строк и M столбцов, значениями которой являются целые числа. Каждой колонке соответствует уникальное имя — строка из латинских символов. Пете задан запрос из Q ограничений вида: ColumnNamek qk valk. qk может принимать два значения:

  1. — учитывать только те строки, где значения в ColumnNamek строго больше valk;

  2. < — учитывать только те строки, где значения в ColumnNamek строго меньше valk. Задача Пети заключается в том, чтоб посчитать сумму во всех строках, которые удовлетворяют всем ограничениям. Юный стажер уже написал скрипт и вычислил ответ. Но Петя волнуется, что где-то ошибся, поэтому просит вас перепроверить его вычисления.

Задача 4.

Межпланетная организация имеет иерархическую древовидную структуру: • Корнем иерархии является генеральный директор; • У каждого сотрудника 0 или более непосредственных подчиненных; • Каждый сотрудник, кроме генерального директора, является непосредственным подчиненным ровно одному сотруднику. Каждый сотрудник, кроме генерального директора, говорит либо на языке A, либо на языке B. Директор говорит на двух языках для управления всей организацией. Структура всей организации хранится в текстовом документе. Каждый сотрудник представлен уникальным идентификатором - целым числом от 0 до N включительно, где 0 - идентификатор генерального директора. Каждый сотрудник представлен в документе ровно два раза. Между первым и вторым вхождением идентификатора сотрудника в аналогичном формате представлены все его подчиненные. Если у сотрудника нет подчиненных, то два его идентификатора расположены один за другим. Например, если • генеральный директор имеет в прямом подчинении сотрудника 1; • сотрудник 1 имеет в прямом подчинении сотрудника 2; • сотрудник 2 имеет в прямом подчинении сотрудников 3 и 4; то документ будет представлен в виде строки: 0123344210 Если при этом сотрудники 1, 3, 4 говорят на языке A, а сотрудник 2 говорит на языке B, то вся организация выглядит так:

Назовем языковым барьером сотрудника X минимальное количество начальников между X и его начальником с таким же языком. В нашем случае сотрудники 2, 3 и 4 - имеют языковой барьер 1, т.к. у каждого из них начальник говорит на неизвестном для них языке, а сразу следующий начальник говорит на том же языке, что они. В то же время сотрудник 1 имеет языковой барьер равный 0, поскольку его начальник - это директор, который знает два языка. Вычислить языковой барьер для каждого сотрудника в компании.

Задача 5.

Определим близость двух целочисленных массивов как длину их наибольшего совпадающего префикса (см. примечание). Примеры: • Близость [1, 2, 1, 3] и [1, 2, 3, 2] равна 2 — префикс [1, 2] совпадает; • Близость [1, 2, 3] и [3, 2, 1] равна 0. Дано n целочисленных массивов a1,a2,…,an. Необходимо вычислить сумму близостей массивов ai и aj для каждой пары 1≤i<j≤n.

About


Languages

Language:Python 100.0%