Выпуск#26: ITренировка — актуальные вопросы и задачи от ведущих компаний
Срочно в номер! Возрождение рубрики ITренировки. Мы вновь собрали вопросы и задачи, задаваемые на собеседованиях в IT-компании.
Выпуски будут появляться каждую неделю — следите за обновлениями! Рубрика выходит при поддержке рекрутингового агентства Spice IT.
Сегодня у нас задачи — очень разного уровня сложности — с собеседований в индийскую компанию Flipkart. Ну что, прошли собес?
Вопросы
1. Thief, Treasure and 2 Doors
A thief has just found a pair of ancient treasure caves. One of the caves is filled with unbelievable treasure and the other has a fire breathing monster that will eat anyone who opens that cave.
One cave has a black door decorated with diamonds and the other cave has a brown door decorated with sapphires.
Each of the doors has an engraved description on top. The descriptions say:Black Door: Monster is here.
Brown Door: Only One Door speaks the truth.Which door should the thief open?
Вход в первую пещеру преграждает черная дверь, украшенная бриллиантами, а в другую — коричневая дверь, украшенная сапфирами.
Каждая из дверей имеет выгравированное описание сверху. Описания гласят:
Черная дверь: монстр здесь.
Коричневая дверь: только одна дверь говорит правду.
Какую дверь должен открыть вор?
2. Find ages of daughters
Alok has three daughters. His friend Shyam wants to know the ages of his daughters. Alok gives him first hint.
- The product of their ages is 72. Shyam says this is not enough information Alok gives him a second hint.
- The sum of their ages is equal to my house number. Shyam goes out and look at the house number and tells «I still do not have enough information to determine the ages». Alok admits that Shyam can not guess and gives him the third hint
- The oldest of the girls likes strawberry ice-cream. Shyam is able to guess after the third hint.
Can you guess what are the ages of three daughters?
- Произведение их возрастов составляет 72. Шиям говорит, что этой информации недостаточно, тогда Алок даёт ему вторую подсказку.
- Сумма их возрастов равна номеру моего дома. Шиям выходит, смотрит на номер дома и говорит: «Мне все еще не хватает информации, чтобы определить возраст». Алок признает, что Шиям не сможет догадаться, и поэтому дает ему третью подсказку.
- Старшая из девушек любит клубничное мороженое. Только после третьей подсказки у Шияма получилось угадать возраст дочерей.
Можете ли вы угадать, каков возраст каждой из трёх дочерей?
Задачи
1. Tom and Jerry
Since very long time Tom and Jerry have been fighting with each other for a piece of Cheese. So finally you came to rescue and decided that the result of the fight will be decided by a mathematical game, in which you will write a number N(1 <= N <= 10^6)
. Tom and Jerry will play the game alternatively and each of them would subtract a number n[n < N]
such thatN % n = 0
.
The game is repeated turn by turn until the one, who now cannot make a further move looses the game.
The game begins with Tom playing first move. It is well understood that both of them will make moves in optimal way. You are to determine who wins the game.Input: the first line of each test case consists of N the number.
Output: print 1 if Tom wins and print 0 if Jerry wins in a separate line.Constraints:
1 <= N <= 10^6
Sample:
Input: 2 / Output: 1
Input: 4 / Output: 1
(1 <= N <= 10^6)
. Том и Джерри будут играть в игру поочередно. Каждый из них вычтет число n [n < N]
так, что N % n = 0
. Игра продолжается до тех пор, пока один из участников может сделать ход. Тот, кто не сможет сделать последний ход, проигрывает.
Игра начинается с того, что Том делает первый ход. Понятно, что оба они будут делать ходы оптимальным образом. Вы должны определить, кто победит в игре.
На вход подается: первая строка ввода каждого теста состоит из числа N.
Выводить программа должна: 1, если победит Том; 0, если Джерри выиграет. В отдельной строке.
Ограничения: 1 <= N <= 10 ^ 6
Пример
Ввод: 2 / Вывод: 1
Ввод: 4 / Вывод: 1
2. N meetings in one room
There is one meeting room in a firm. There are N meetings in the form of(S[i], F[i])
where S[i] is start time of meeting i and F[i] is finish time of meeting i.
What is the maximum number of meetings that can be accommodated in the meeting room?Input:
The first line of input consists number of the test cases. The description of T test cases is as follows:
The first line consists of the size of the array, second line has the array containing the starting time of all the meetings each separated by a space, i.e., S [i]. And the third line has the array containing the finishing time of all the meetings each separated by a space, i.e., F [i].
Output:
In each separate line print the order in which the meetings take place separated by a space.Constraints:
1 ≤ T ≤ 70
1 ≤ N ≤ 100
1 ≤ S[ i ], F[ i ] ≤ 100000Example:
Input:2
6
1 3 0 5 8 5
2 4 6 7 9 9
8
75250 50074 43659 8931 11273 27545 50879 77924
112960 114515 81825 93424 54316 35533 73383 160252
Output:1 2 4 5
6 7 1
(S [i], F [i])
, где S [i] — время начала встречи i, а F [i] — время окончания встречи i.Задача — разместить максимальное количество встреч в переговорной.
Входные данные:
Первая строка ввода содержит количество тестов. Описание тестов выглядит так:
• первая строка состоит из размера массива;
• вторая строка имеет массив, содержащий время начала всех встреч S[i], каждое из которых разделено пробелом;
• третья строка содержит массив, содержащий время окончания всех встреч F[i], каждое из которых разделено пробелом.
Вывод:
в каждой отдельной строке выведите порядок, в котором проходят собрания, через пробел.
Ограничения: 1 ≤ T ≤ 70
1 ≤ N ≤ 100
1 ≤ S [i], F [i] ≤ 100000
Пример:
Ввод: 2
6
1 3 0 5 8 5
2 4 6 7 9 9
8
75250 50074 43659 8931 11273 27545 50879
77924 112960 114515 81825 93424 54316 35533 73383 160252
Выход: 1 2 4 5
6 7 1
3. Inversion of array
Given an array of positive integers. The task is to find inversion count of array.
Inversion Count: For an array, inversion count indicates how far (or close) the array is from being sorted. If array is already sorted then inversion count is 0. If array is sorted in reverse order that inversion count is the maximum.
Formally, two elements a[i] and a[j] form an inversion ifa[i] > a[j]
andi < j
.Input: The first line of input contains an integer T denoting the number of test cases. The first line of each test case is N, the size of array. The second line of each test case contains N elements.
Output: Print the inversion count of array.Constraints:
1 ≤ T ≤ 100
1 ≤ N ≤ 107
1 ≤ C ≤ 1018Example:
Input:1
5
2 4 1 3 5
Output:3
Количество инверсий: для массива количество инверсии указывает, насколько далеко (или близко) массив от сортировки. Если массив уже отсортирован, то количество инверсий равно 0. Если массив отсортирован в обратном порядке, то количество инверсий является максимальным.
Формально два элемента a[i] и a[j] образуют инверсию, если
a[i] > a[j]
и i < j
.Входные данные:
первая строка содержит целое число T, обозначающее количество тестов. Первая строка каждого теста — это N, размер массива. Вторая строка каждого теста содержит N элементов.
Выход:
вывести количество инверсий массива.
Ограничения: 1 ≤ T ≤ 100
1 ≤ N ≤ 10 7
1 ≤ C ≤ 10 18
Пример:
Ввод: 1
5
2 4 1 3 5
Выход:
3
Ответы на задачи будут даны в течение следующей недели — успейте решить. Удачи!