Задача на реализацию

129 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
 В библиотеке на стеллажи расставляют книги. Книги ставятся на полки ровно по  K штук на каждую, если полка не может быть заполнена полностью, она остается пустой. В каждом стеллаже по М полок. Последний стеллаж может быть заполнен не полностью. Всего имеется N книг. Сколько всего понадобится стеллажей, сколько полок будет заполнено на последнем стеллаже и сколько книг останется не выставлено на стеллажи (выставить нужно как можно больше книг)? Написать программу: вводятся три числа целых N, M, K в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся стеллажей, затем количество заполненных книгами полок на последнем стеллаже, а затем количество не выставленных книг
 
Примеры
Входные данные Выходные данные
1 50 70 8 1 6 2
 

 
 
Из цветных лампочек комплектуют новогодние гирлянды. Сначала лампочки связываются в "снежинку" ровно по  K штук в каждой, а потом "снежинки" - в гирлянды, причем каждая гирлянда вмещает не более M "снежинок". Последняя гирлянда (только она одна) может быть короче других (включать в себя меньше "снежинок", чем остальные). Всего имеется N лампочек.  Сколько всего получится гирлянд, сколько "снежинок" будет в последней гирлянде и сколько лампочек останется неиспользованными (нужно использовать как можно больше лампочек)? Написать программу: вводятся три числа целых N, M, K в одной строке; вывести три числа в одной строке - сначала количество получившихся гирлянд, затем количество "снежинок" в последней гирлянде, а затем количество неиспользованных лампочек
 
Примеры
Входные данные Выходные данные
1 35 3 4 3 2 3

Алина выписала на доске \(n + 1\) цифру, каждая из которых от \(1\) до \(9\). Даша поставила между каждой парой соседних цифр знак одной из арифметических операций <<+>>, <<->>, <<*>> и <</>> (плюс, минус, умножить, целочисленное деление). Затем девочки отправились в столовую на обед.

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

Они просят вас зная последовательность знаков, расставить цифры от \(1\) до \(9\) между ними так, чтобы итоговый результат был максимальным.

Формат входных данных
В первой строке дано число \(n\), число знаков, которые написала Даша (\(1 \le n \le 1000\)).

Во второй строке находится \(n\) знаков арифметических операций <<+>>, <<->>, <<*>> и <</>> (без кавычек).

Формат выходных данных
Выведите в единственной строке последовательность из \(n + 1\) цифры, таким образом, чтобы при расстановке между ними знаков итоговый результат был максимальным.

Если возможных решений несколько, разрешается вывести любое.

 
Андрей готовился к ЕГЭ по информатике и встретил в демо-версии ЕГЭ 2015 года такую задачу:
Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.
1. Складываются первая и вторая, а также третья и четвёртая цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).
Пример. Исходное число: 3165. Суммы: 3+1 = 4; 6+5 = 11. Результат: 114.
Укажите наименьшее число, в результате обработки которого автомат выдаст число 1311.

Андрей решил, что для самопроверки он напишет программу, которая решает подобную задачу. Мы думаем, что вы тоже с этим справитесь.
Программа получает на вход некоторое натуральное число N, которое может содержать две, три или четыре цифры.

Программа должна вывести такое наименьшее целое четырёхзначное число K, после применения к которому описанного выше алгоритма получается число N. Если же такого числа не существует, программа должна вывести число 0.
 
Ввод Вывод
1311 2949

Петя создает поле для своей новой игры. Поле разделено на клетки и представляет собой прямоугольник размером N на M клеток. Пусть клетки имеют координаты от 1 до N слева направо по горизонтали и от 1 до M снизу вверх по вертикали.

На этом поле Петя уже разместил супермаркет, который представляет собой прямоугольник размером C на D клеток (C –– размер по горизонтали, D –– по вертикали), и нижняя левая клетка супермаркета имеет координаты AB на игровом поле (см. примеры и рисунки). Теперь Пете нужно разместить на том же игровом поле здание биржи. Здание биржи представляет собой прямоугольник размером E на F клеток (E –– по горизонтали, F –– по вертикали). Естественно, что здание биржи должно полностью располагаться на игровом поле и не должно иметь общих клеток с супермаркетом (но может касаться его).

Сколькими способами Петя сможет разместить здание биржи?

Входные данные

Вводятся числа NMABCDEF, каждое в отдельной строке. Числа удовлетворяют следующим условиям: 1 ≤ N ≤ 100, 1 ≤ M ≤ 100, 1 ≤ A ≤ N, 1 ≤ B ≤ M, 1 ≤ A + C - 1 ≤ N, 1 ≤ B + D - 1 ≤ M, 1 ≤ E ≤ N, 1 ≤ F ≤ M.

Выходные данные

Выведите количество способов разместить здание биржи.

 

Ввод Вывод
6
5
2
3
3
2
1
2
15
4
4
2
2
3
2
2
2
0
6
5
1
1
3
3
3
3
3

Примечание

Рисунки ниже соответствуют приведенным примерам. На рисунках серым показано здание супермаркета. Точками отмечены варианты размещения нижнего левого угла здания биржи.



 
В некоторой компании работают три сотрудника — Алексей, Виктор и Сергей. Их месячный оклад составляет A, B и C рублей соответственно. При этом Алексей работает на полную ставку, а Виктор и Сергей — на половину ставки, то есть работают вдвое меньше, чем Алексей.

По итогам месяца директор компании хочет распределить между этими сотрудниками премиальный фонд, который составляет N рублей. При этом директор хочет распределить премиальный фонд таким образом, чтобы итоговая зарплата (сумма оклада и премии) у этих сотрудников оказалась пропорциональна проведённому на работе времени, то есть зарплата Алексея должна оказаться ровно в два раза больше, чем зарплата Виктора и Сергея. Более формально, если премия Алексея составит x рублей, премия Виктора — y рублей, премия Сергея — z рублей, то A + x = 2 (B + y) = 2 (C + z), x + y + z ≤ N. При этом бухгалтерия требует, чтобы размер премии (как и размер оклада) выражался целым числом рублей, а директор хочет распределить максимально большую часть премиального фонда, то есть сумма x + y + z должна быть максимально возможной, не превышая при этом N.

Напишите программу, которая определит, какую премию нужно назначить каждому из сотрудников.
Программа получает на вход сначала три целых числа A, B, С, записанные в отдельных строках, — размеры окладов Алексея, Виктора и Сергея (A > 0, B > 0, С > 0). В четвёртой строке входных данных записано одно целое число N — размер премиального фонда (N ≥ 0).
Программа должна вывести три числа — размер премии Алексея, Виктора и Сергея. Если премиальный фонд нельзя распределить так, чтобы выполнялись требуемые условия, программа должна вывести одно число 0.
 
Ввод Вывод Примечание
7
3
4
12
5
3
2
С учетом премии зарплата Алексея составит 12 рублей, Виктора и Сергея — 6 рублей.
20
10
11
2
0 Добиться нужного соотношения премиальных выплат невозможно.
В прошлом году на муниципальном этапе была задача про сотрудников бизнесцентра, которые вечером выходят с работы. Теперь решите задачу про сотрудников бизнесцентра, которые утром приходят на работу.

Бизнес-центр представляет собой N-этажное здание, этажи пронумерованы от 1 до N снизу вверх. На каждом этаже работает ровно один сотрудник. Все сотрудники утром приезжают на парковку, которая расположена в подвальном помещении, на один этаж ниже первого. Бизнес-центр оборудован лифтом, который вмещает неограниченное число людей, но вредный лифтёр сегодня готов отвезти всех сотрудников только на один какой-то этаж.

У каждого сотрудника есть выбор: он может пойти вверх пешком по лестнице, на подъём на один этаж при этом будет уходить A секунд. Либо он может сесть в лифт, который отвезёт всех сотрудников на какой-то выбранный ими вместе этаж. Выйдя из лифта, сотрудник может подняться до своего этажа (также тратя A секунд на подъём на один этаж), либо спуститься до нужного этажа вниз, тратя B секунд на спуск на один этаж. Лифт тратит C секунд на подъём на один этаж.
Определите минимальное время, за которое все сотрудники разойдутся по своим этажам, если они наилучшим образом выберут этаж, на который едет лифт, и свою стратегию поведения (подниматься по лестнице или ехать на лифте, а затем идти по лестнице).

Первая строка входных данных содержит число N – количество этажей в бизнесцентре. Следующие три строки содержат числа A, B, С – время, необходимое сотруднику на подъём на один этаж, на спуск на один этаж и время, необходимое лифту на подъём на один этаж. Все числа – целые положительные, не превосходящие 2×109 , при этом A ≥ B, A ≥ С. Программа должна вывести единственное целое число – минимальное время, за которое все сотрудники могут добраться до своего этажа.
 
Ввод Вывод Примечание
6
20
10
5
45 В здании 6 этажей. Сотрудник поднимается на один этаж за 20 секунд, спускается за 10 секунд. Лифт поднимается на один этаж за 5 секунд. Чтобы быстрее всем добраться до мест, лифт едет на 5-й этаж за 25 секунд. Сотрудник, который работает на 6-м этаже, выходит из лифта и поднимается за 20 секунд, всего его путь занимает 45 секунд. Сотрудник, работающий на 3-м этаже, едет на лифте и спускается на 2 этажа, это также занимает 45 секунд. Сотрудники с 4 и 5-го этажей также едут на лифте, их путь будет быстрее 45 секунд. На 1 и 2-й этажи сотрудники поднимаются пешком по лестнице за 20 и 40 секунд соответственно. Итого все сотрудники добираются до своих этажей не более чем за 45 секунд.

 
В турнире участвуют N команд. Турнир проводится по олимпийской системе (команды играют на вылет, проигравшие команды выбывают из турнира, выигравшие проходят в следующий тур, ничьих не бывает). Число команд в этой задаче будет степенью двойки: N = 2 k .

Все команды пронумерованы числами от 1 до N. В первом туре играют команды с номерами 1 и 2, 3 и 4, 5 и 6 и т. д., всего играется N/2 матчей. По результатам этих матчей команды выходят во второй тур. Во втором туре играют победители первой и второй игры первого тура, победители третьей и четвёртой игры первого тура и т. д. Они выходят в третий тур. В третьем туре играют вместе победители первой и второй игры второго тура, победители третьей и четвёртой игры второго тура и т. д.

Вам даны результаты всех матчей. Определите номер команды, которая стала победителем турнира.
В первой строке входных данных записано число N – количество команд, участвовавших в турнире. Оно является степенью двойки и может принимать значения от 20 = 1 до 216 = 65536. Следующие N − 1 строк содержат результаты всех сыгранных матчей. Первые N/2 строк из них являются результатами матчей первого тура, затем идёт N/4 строк с результатами второго тура, N/8 строк с результатами третьего тура и т. д.

Результат каждого матча является одним из двух возможных чисел: 1 или 2. Число 1 означает, что в матче выиграла первая команда (номер которой меньше), число 2 означает, что в матче выиграла вторая команда (номер которой больше).
Программа должна вывести одно число – номер победившей в турнире команды.
 
Ввод Вывод
8
1
2
2
1
2
1
1
4

Примечание к ответу
Далее нарисована схема турнира для примера из условия. В турнире участвовало 8 команд. Результаты матчей: 1, 2, 2, 1, 2, 1, 1.
В первом туре играли команды 1 и 2, 3 и 4, 5 и 6, 7 и 8. Результаты матчей первого тура: 1, 2, 2, 1, во второй тур вышли команды 1, 4, 6, 7.
Во втором туре играли команды 1 и 4, 6 и 7. Результаты матчей второго тура: 2, 1.
В третий тур вышли команды 4 и 6. В последнем, третьем, туре играют команды 4 и 6, результат матча: 1, поэтому победителем турнира является команда 4.

У Олега есть карта «Тройка», на которой осталась одна поездка на наземном транспорте. От дома Олега до школы можно доехать на трамвае, троллейбусе или автобусе. Трамвай ходит через каждые 15 минут, троллейбус — через каждые 10 минут, автобус — через каждые 5 минут, при этом в 8:00 одновременно от остановки отправляются и трамвай, и троллейбус, и автобус (то есть трамвай отправляется в 8:00, 8:15, 8:30, 8:45, 9:00; троллейбус — в 8:00, 8:10, 8:20, 8:30, 8:40, 8:50, 9:00; автобус — в 8:00, 8:05, 8:10, 8:15 и т. д.). Трамвай едет до нужной остановки X минут, троллейбус — Y минут, автобус — Z минут.

Когда Олег пришёл на остановку, на часах было 8 часов M минут. Определите минимальное время, через которое Олег окажется на нужной ему остановке (считая время ожидания транспорта и время поездки на транспорте). Если какой-то транспорт отправляется в тот же момент, когда Олег пришёл на остановку, то Олег успевает на нём уехать.
Программа получает на вход сначала три целых положительных числа X, Y, Z, не превосходящие 100, записанные в отдельных строчках, — время поездки на трамвае, троллейбусе, автобусе соответственно. В четвёртой строке входных данных записано целое число M (0 ≤ M ≤ 59) — момент времени (в минутах), когда Олег пришёл на остановку.
Программа должна вывести одно натуральное число — минимально возможное суммарное время ожидания транспорта и поездки.
 
Ввод Вывод Примечание
25
10
20
12
18 Олег пришёл на остановку в 8:12. Ему нужно подождать 8 минут и сесть на троллейбус, который довезёт его за 10 минут.
Один древнеримский торговец брал несколько раз ссуду в древнеримском банке. Каждый раз банкир записывал размер выданной ссуды на листе пергамента, используя римские числа. Но ввиду дороговизны пергамента запись производилась плотно и все числа оказались записанными подряд, без разделителей. Когда торговец пришёл возвращать ссуду, оказалось, что невозможно установить разбиение записи на числа.

Например, если на пергаменте записана строка «XIIV», её можно разбить на римскиечисла разными способами, например, XI + IV = 11 + 4 = 15 или XII + V = 12 + 5 = 17, возможны и другие варианты разбиения.

Торговец хочет вернуть как можно меньше денег, поэтому он хочет так разбить строку цифр на римские числа, чтобы сумма всех чисел была как можно меньше.

Программа получает на вход строку, длина которой не превосходит 250 символов. Строка состоит только из заглавных латинских букв I, V, X, L, С, D, M.

Программа должна вывести единственное число – минимально возможную сумму, которую можно получить при разбиении данной строки на последовательность корректных римских чисел. Ответ нужно вывести арабскими цифрами в десятичной системе счисления.

Правила записи римских чисел
Римскими цифрами можно записать целые числа от 1 до 3999. Число представляется в виде суммы тысяч, сотен, десятков и единиц. Далее из следующей таблицы берётся по одному элементу, соответствующему тысячам, сотням, десяткам, единицам ровно в таком порядке.



Если число тысяч, сотен, десятков, единиц равно 0, то из соответствующего столбца ничего не берётся. Например, число 1990 записывается, как 1000 + 900 + 90 = MCMXС.
Ввод Вывод
XIIV 15

 
Во время последней секретной операции Капитану Марвел удалось выкрасть закодированное
секретное сообщение скруллов — строку s. Однако, в закодированном виде никакой полезной информации оно из себя не представляет, поэтому его непременно нужно раскодировать.
Несмотря на развитость скруллов, их система кодирования сообщений проста и общеизвестна:
• Перед кодированием сообщения выбирается цифра d (0 <= d <= 9)
• Символы сообщения рассматриваются слева направо
• У каждого символа сообщения вычисляется его ASCII-код (например, у «a» он равен 97, у
«b» — 98, у «z» — 122)
• Если код трехзначный, он дописывается к текущей закодированной строке как есть, если же
код двузначный, к нему в случайное место добавляется цифра d и полученный результат
дописывается к текущей закодированной строке (например, если d = 3, а текущая буква —
«a», к текущей закодированной строке могут дописатсья числа 397, 937 или 973)
• После обработки всех букв, результатом считается полученная закодированная строка
Число d обычно передается вместе с сообщением, но Капитану Марвел не удалось его найти. Однако, она точно знает, что исходное сообщение состояло только из строчных и заглавных латинских
букв. Она понимает, что без числа d раскодировать сообщение однозначно может не получиться, поэтому для начала хочет посчитать, сколько существует различных строк t, состоящих из строчных
и заглавных латинских букв, таких, что, закодировав их, получится строка s. Так как наша героиня
не может быть полностью уверена, что сообщение было перехвачено полностью, вполне возможно,
что его невозможно декодировать ни одним способом.
Помогите нашей героине — найдите количество этих строк по модулю 109 + 7.

Формат входных данных
В единственной строке содержится закодированная строка s, выкраденная Капитаном Марвел
(3 <= |s| <= 105). Гарантируется, что строка s состоит только из цифр, а также что ее длина кратна 3.
Формат выходных данных
В единственной строке выведите одно число — количество различных строк, состоящих из строчных и заглавных латинских букв, которые кодируются в строку s, по модулю 109 + 7.
 
Ввод Вывод
988 2
100905 1
600 0
 
Замечание
В первом примере закодированную строку можно получить из «b», если d = 8, а также из «X», если d = 9.
Во втором примере закодированную строку можно получить только из «dZ» при d = 5.

 
Папа Воси покупал ёлочку 31 декабря, поэтому ему впихали последнюю и очень странную. У этой ёлочки всего 2 ветки, и каждая из них разветвляется ещё на две ветки, и эти ветки ещё на две, и ещё, и ещё... и так N  раз.
Вося захотел повесить на бедное дерево свои любимые ёлочные игрушки: разноцветные шарики с красивой надписью "С++". Но Восе удобно вешать свои шарики только на "конечные" веточки (веточки, которые не разветвляются), и ему даже не лень стало из сосчитать. В итоге Вося повесил на ёлочку K шариков и пошёл помогать маме стругать оливье.
Тогда до ёлочки добралась его сестра, начинающий математик Доша. Она захотела украсить ёлочку мишурой, наматывая её на каждую ветку (одна мишура на одну ветку). Считать она, однако, умеет только до 100, поэтому позвонила своему другу, то есть вам, с просьбой сказать, сколько мишуры ей нужно.
Считайте, что вы следили за этой ёлочкой, поэтому знаете и N, и K (0  <  N, K  <=  10^9). Помогите Доше как можно быстрее, ведь ей пора бежать за тазиком для оливье.

Ввод Вывод
90 84 173


(c) Неверов З., Дзензилюк И., Щипунова Е., 2018 г.
Вам дается массив a размера n и q запросов к нему. Есть запросы двух типов:
  • li ri — осуществить циклический сдвиг отрезка [li, ri] вправо. То есть, для каждого такого x, что li ≤ x < riax + 1 становится равным прежнему значению ax, а ali становится равным прежнему значению ari;
  • li ri — перевернуть отрезок [li, ri].
 
Необходимо вывести массив после обработки всех запросов.
 
Входные данные
В первой строке записаны два целых числа n и q (1 ≤ n, q ≤ 2·105).
Во второй строке записаны n целых чисел a1a2, ..., an (1 ≤ ai ≤ 109).
Дальше идут q строк. В i-й из них записаны три целых числа tiliri, где ti — тип i-го запроса, [li, ri] — отрезок, на котором запрос выполняется (1 ≤ ti ≤ 2, 1 ≤ li ≤ ri ≤ n).
 
Выходные данные
Выведите m чисел, i-е из которых равно числу на позиции bi после обработки всех запросов.

Ввод Вывод
6 3
1 2 3 4 5 6
2 1 3
2 3 6
1 1 6
1 3 2 6 5 4


(c) Курбатов Е., 2018
Фермер Джон потерял свою корову Беси и хочет её найти.
К счастью через ферму ведёт только одна длинная дорога и и ФД знает, что Беси находится в некоторой точке на этой дороге. Если мы рассмотрим эту дорогу как числовую прямую, ФД сейчас находится в точке x, а Беси сейчас находится в точке y (неизвестной ФД). Если бы ФД знал, где Беси, то бы мог идти прямо к ней, пройдя расстояние |x−y|. К несчастью, сейчас темно, и ФД ничего не видит. Единственный способ, которым он может найти Беси - ходить вперёд и назад, пока не наткнётся на Беси.
 
Пытаясь найти наилучшую стратегию поиска ФД проштудировал компьютерную литературу и выяснил, что эта проблема ещё не решена и носит название "Проблема потерянной коровы".
 
Рекомендуемая стратегия такова: двинуться в позицию x+1, затем изменить направление движения на противоположное и перейти в позицию x−2, затем в позицию x+4 и т.д., двигаясь "большим зигзагом", каждый раз двигаясь в два раза дальше от своей первоначальной позиции, чем в прошлый раз. Такой подход гарантирует, что он пройдёт в худшем случае 9 раз прямое расстояние от себя до Беси |x−y|. И это - наименьшее число, гарантируемое в худшем случае.
 
ФД хочет проверить это утверждение. Вам даны x и y, вычислите общее расстояние пройденное в поиске по описанному выше алгоритму "большой зиг-заг", пройденное до момента находки Беси.
 
ФОРМАТ ВВОДА :
 
Единственная строка ввода содержит два различных разделённых одним пробелом целых числа x и y. Оба числа в интервале 0…1,000.
ФОРМАТ ВЫВОДА:
 
Выведите одну строку, содержащую расстояние пройденное ФД до достижения Беси.
 
Ввод Вывод
3 6 9
Фермер Джон тестирует новую камеру, которая может "схватить картинку" и автоматически вычислить положение коров. К несчастью, у камеры не очень хороший алгоритм поиска коров и ФД нуждается в Вашей помощи.
Картинка, получаемая камерой, может быть описана решёткой из N×N символов, каждый в интервале A…Z, представляющих один из 26 возможных различных цветов. ФД считает наилучшим такой алгоритм распознавания коров: PCL (возможное размещение коровы) - это прямоугольник на решётке (возможно вся решётка) со сторонами параллельными сторонам решётки, не содержащий внутри других PCL и обладающий следующим свойством: внутри этого прямоугольника должны присутствовать ровно два цвета, один формирует непрерывный регион, а другой формирует два или более непрерывных регионов.
 
Например, такой образ
 
AAAAA
ABABA
AAABB
есть PCL, поскольку символы A формируют непрерывный регион, символы B форрмируют более одного непрерывного региона. Интерпретация - это корова с цветом A и с пятнами цвета B.
 
Регион является непрерывным, если вы может пройти его весь, перемещаясь из одной клетки в другую соседнюю по направлениям вверх, вниз, влево, вправо.
 
По заданному образу камеры ФД определите количество PCL.
 
ФОРМАТ ВВОДА:
 
Первая строка ввода содержит N, размер решётки (1≤N≤20). Следующие N строк описывают образ, каждая состоит из N символов.
 
ФОРМАТ ВЫВОДА:
 
Количество PCL в образе.
 
Ввод Вывод
4
ABBC
BBBC
AABB
ABBC
2
Дано корректное математическое выражение, состоящее из переменных, обозначаемых строчными латинскими буквами, инфиксных бинарных операций и круглых скобок для группировки подвыражений. Все операции имеют ассоциативность слева направо и приоритеты, указанные в таблице:
 
Приоритет Операции
1 (наибольший) *, /
2  +, -
3  &
4  ^
5 (наименьший)  |

Требуется удалить из выражения все лишние пары скобок, не влияющие на порядок операций в нём (операции трактовать абстрактно, без какого-либо математического смысла, опираясь только на формальный порядок операций). Приоритет определяет, в каком порядке выполняются операции в цепочке, а ассоциативность определяет направление вычислений в цепочке операций одного приоритета.
 
Ввод Вывод Замечания
a+(b*c) a+b*c (у ‘*’ приоритет выше, чем у ‘+’, поэтому она и так выполняется первой,- скобки лишние);
((a+b)+(c+d)) a+b+(c+d) (Скобки вокруг всего выражения допустимы, но никогда не влияют на порядок вычисления внутри. Поскольку ассоциативность всех операций слева направо, первые внутренние скобки лишние, а вторые – нет, без них выражение было бы эквивалентно (((a+b)+c)+d));
((a)+b)&c^d  a+b&c^d (скобки вокруг переменной всегда лишние).
(((a)&b^c|((d)))) a&b^c|d  
a a  


Формат входного файла:
Одна строка, содержащая исходное математическое выражение не длиннее 100 символов.
Формат выходного файла:
Одна строка с математическим выражением без лишних скобок.
Ученым удалось отправить на планету Марс мини-фабрику, которая может за одни сутки произвести мини-фабрику или дрона для сбора воды (мини-фабрика или дрон для сбора воды могут начать работу только со следующих суток). Дрон собирает одну единицу воды за одни сутки. Определите, за какое минимальное количество суток удастся собрать не менее N единиц воды.

Формат входных данных
Задается одно число N ( 1<= N <= 109 ) – необходимое количество воды.

Формат выходных данных
Одно целое число M – минимально необходимое количество суток.
 
Ввод Вывод
2 3


Замечание
Одна из правильных последовательностей действий выглядит так:
? В первые сутки мини-фабрика производит дрона для сбора воды;
? За вторые сутки мини-фабрика производит еще одного дрона, а первый дрон собирает одну единицу воды;
? За третьи сутки мини-фабрика может произвести еще одного дрона или мини- фабрику, при этом первый дрон собирает еще одну единицу воды (итого он собрал 2 единицы воды), а второй дрон собирает единицу воды. Таким образом, накоплено 3 единицы воды за трое суток.

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

Определите, какая шестнадцатеричная цифра стоит в этом числе на a-ой позиции, считая слева направо от начала числа. В ответе укажите эту шестнадцатеричную цифру.
Поделиться
Класснуть