Информатика

4 314 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
В одной из компьютерных игр-квестов есть следующее задание. На карте игрового мира размещены N персонажей, с каждым из которых может встретиться игрок. От общения с i-м персонажем карма игрока меняется на величину ai, которая может быть как положительной, так отрицательной или даже нулем.

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

Комнаты, в которых находятся персонажи, соединены односторонними магическими порталами, поэтому игроку придется встречать персонажей в определенной последовательности: после персонажа номер i он попадает к персонажу номер i + 1, затем к персонажу номер i + 2, и т.д. В комнате последнего персонажа с номером N портала к другому персонажу нет.

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

Помогите игроку определить, в какую комнату надо телепортироваться в начале и из какой комнаты нужно покинуть игровой мир, чтобы достичь кармы K или сообщите, что это невозможно.

Входные данные
В первой строке входных данных записаны два числа: количество персонажей N и необходимый уровень кармы K (|K| ≤ 109, K ≠ 0). Во второй строке через пробел записаны N целых чисел a1, a2, ..., aN — величины, на которые меняется карма героя после общения с персонажами с номерами 1, 2, ..., N соответственно.

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

 
Дорожка замощена плитками в один ряд, плитки пронумерованы числами от 1 до 1000. На плитках с номерами A, B и C (A < B < C) сидят три кузнечика, которые играют в чехарду по следующим правилам:
1. На одной плитке может находиться только один кузнечик.
2. За один ход один из двух крайних кузнечиков (то есть с плитки A или с плитки C) может перепрыгнуть через среднего кузнечика (плитка B) и встать на плитку, которая находится ровно посередине между двумя оставшимися кузнечиками (то есть между B и C или A и B соответственно). Если между двумя оставшимися кузнечиками находится чётное число плиток, то он может выбрать любую из двух центральных плиток.
Например, если кузнечики первоначально сидели на плитках номер 1, 5, 10, то первым ходом кузнечик с плитки номер 10 может перепрыгнуть на плитку номер 3 (она находится посередине между 1 и 5), или кузнечик с плитки номер 1 может перепрыгнуть на плитку номер 7 или 8 (эти две плитки находятся посередине между плитками 5 и 10).
Даны три числа: A, B, C. Определите, какое наибольшее число ходов может продолжаться игра.

Формат входных данных
Программа получает на вход три целых числа A, B и C (1 <= A < B < C <= 1000), записанных в отдельных строках.
Формат выходных данных
Выведите одно число — наибольшее количество ходов, которое может продолжаться игра.
 
Ввод Вывод Примечание
1
4
6
2 В примере сначала кузнечик с плитки №6 прыгает на плитку №3. Затем кузнечик с плитки №4 прыгает на плитку №2.
Натуральное число называется палиндромом, если его запись в десятичной системе счисления одинаково читается как слева направо, так и справа налево. По данному натуральному числу N определите следующее за ним натуральное число (то есть наименьшее число, которое превосходит N), являющееся палиндромом.
Программа получает на вход одно натуральное число N.
Программа должна вывести наименьшее натуральное число, которое больше N и является палиндромом.
 
Ввод Вывод
4321 4334
Андрей готовился к ЕГЭ по информатике и встретил в демо-версии ЕГЭ 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 Добиться нужного соотношения премиальных выплат невозможно.
В Москве начал работать новый оператор сотовой связи, предоставляющий доступ в интернет посредством технологии 3G. Новый оператор предлагает простые и невысокие
тарифы, в частности, один мегабайт интернет-трафика стоит 1 рубль. 

Кроме того, оператор предлагает покупать оптовые пакеты трафика – есть два предложения: купить пакет трафика на A мегабайт за B рублей и купить пакет трафика на C мегабайт за D рублей.

Таня планирует использовать в течение месяца N мегабайт интернет-трафика. Определите минимальную сумму, которую придётся ей заплатить. Таня может приобретать
любое количество каждых из двух предлагаемых пакетов, а также оплачивать трафик по тарифу «1 рубль за мегабайт». Таня может приобретать пакеты интернет-трафика и в том
случае, если суммарный оплаченный трафик будет более N мегабайт, если это выйдет дешевле.

Программа получает на вход пять натуральных чисел N, A, B, C, D, записанных в отдельных строках, не превосходящих 500 000 каждое. Гарантируется, что A > B и C > D.
Программа должна вывести одно целое число – минимальную сумму, которую нужно заплатить для приобретения N мегабайт трафика.
 
Ввод Вывод Примечание
35
10
9
20
17
31 Пакет на 10 мегабайт стоит 9 рублей, пакет на 20 мегабайт
стоит 17 рублей. Для оплаты 35 мегабайт нужно купить пакет
на 10 мегабайт и пакет на 20 мегабайт, а за оставшиеся 5
мегабайт заплатить 5 рублей.
 
55
30
20
20
16
40 Пакет на 30 мегабайт стоит 20 рублей, пакет на 20 мегабайт
стоит 16 рублей. Для оплаты 55 мегабайт нужно купить два
пакета на 30 мегабайт, что суммарно будет стоить 40 рублей.

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

Бизнес-центр представляет собой 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 секунд.

 
У Олега есть карта «Тройка», на которой осталась одна поездка на наземном транспорте. От дома Олега до школы можно доехать на трамвае, троллейбусе или автобусе. Трамвай ходит через каждые 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 минут.
Дан массив произвольных целых чисел. Напишите программу, которая за один проход по массиву находит непрерывный кусок, сумма чисел в котором максимальна.
Примечание. Фактически требуется найти такие i и j (i<=j), что сумма всех элементов массива от ai до aj включительно будет максимальна. Индексация элементов начинается с 1.

Входные данные
В первой строке задается натуральное число n <= 100000 — количество элементов в массиве. В следующих n строках задаются сами элементы массива — целые числа, по модулю не превосходящие 30 000.

Выходные данные
Выведите пару искомых значений индексов. Если таких пар несколько, то j должно быть минимально возможным, а при равных j значение i должно быть максимально возможным. В первой строке выведите i, во второй - j.
 
Примеры
Входные данные Выходные данные
1 5
-1
2
3
-2
2
2
3
2 7
2
-2
3
-1
5
-2
7
3
7
В школе  № 2007 на уроке информатики в системе SilverTests Васе попалась следующая задача: «В  младшей группе одного объединённого детского сада воспитательница  изучала с детишками  порядок цветов радуги. Она отыскала семь соответствующих цветных мелков и начала рисовать полоски, не нарушая последовательности цветов.  Начала она с красной полоски. Когда доходила до фиолетовой полоски, опять рисовала  красную. Воспитательница  успела нарисовать N полосок, когда у неё закончились  мелки. Напишите программу, которая вычисляет количество полосок каждого цвета».  Вася взялся писать программу, но тут обнаружилось, что на клавиатуре отсутствует клавиша с буквой  «i». Помогите Васе написать программу с учётом этого обстоятельства.

Входные данные: Вводится одно целое положительное число N > 0.
Выходные данные: Выведите ответ на задачу.

Если в коде программы встречается буква «i» система выдаст сообщение:  Использование запрещенных операторов
 
Примеры
Входные данные Выходные данные
1 3 'red - 1'
'orange - 1'
'yellow - 1'
'green - 0'
'blue - 0'
'sky - 0'
'purple - 0'
Из цветных лампочек комплектуют новогодние гирлянды. Сначала лампочки связываются в "снежинку" ровно по  K штук в каждой, а потом "снежинки" - в гирлянды, причем каждая гирлянда вмещает не более M "снежинок". Последняя гирлянда (только она одна) может быть короче других (включать в себя меньше "снежинок", чем остальные). Всего имеется N лампочек.  Сколько всего получится гирлянд, сколько "снежинок" будет в последней гирлянде и сколько лампочек останется неиспользованными (нужно использовать как можно больше лампочек)? Написать программу: вводятся три числа целых N, M, K в одной строке; вывести три числа в одной строке - сначала количество получившихся гирлянд, затем количество "снежинок" в последней гирлянде, а затем количество неиспользованных лампочек

 

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

 

Примеры
Входные данные Выходные данные
1 50 70 8 1 6 2
Вилли играл дружеский матч с Эмми на звание чемпиона мира. Когда им надоедали долгие шахматные баталии, они переключались на дартс. Игра в дартс заключалась в следующем: каждый бросал дротик в круг, который располагался на расстоянии нескольких метров. Круг имел особую разметку, разделенную на несколько областей окружностями радиусом 10 и радиусом 5 (см. рисунок).  Попадание дротика в красную область приносило 20 баллов, попадание в зеленую - 15 баллов, попадание в желтую - 30 баллов, а попадание в центр - 50 баллов. Если дротик попадал на границу областей, то это давало количество баллов, равное максимальному баллу из граничащих областей.
Попадание дротика будем условно кодировать точкой с координатой (x ,y). Вилли и Эмми сделали по 2 броска дротиками. Необходимо посчитать, кто из них победил.
Напишите программу, которая будет подсчитывать и выводить победителя этой игры. Вывести имя победителя (W - Вилли, E - Эмми) и через пробел, набранные им баллы. При равенстве вывести W=E и количество баллов.

Входные данные
На вход подаются 4 строки по 2 числа в каждой строке (все числа целые). Первые две строки -  координаты точек (x ,y), куда попали дротики Вилли (W), третья и четвертая строка - куда попали дротики Эмми (E).

Выходные данные
Выведите имя победителя (W - Вилли, E - Эмми) и через пробел, набранные им баллы. При равенстве вывести W=E и через пробел количество набранных баллов.
 

 

Примеры
Входные данные Выходные данные
1 0 0
-5 7
1 1
5 7
W 65
2 0 0
5 5
0 0
5 5
W=E 70

На столе выложили цепочку из N костяшек по принципу домино. Под костяшкой понимается пара любых неотрицательных чисел, каждое не превышает 100. В наборе нет двух одинаковых костяшек (как в домино). Переставлять местами костяшки нельзя, но можно поворачивать любую костяшку, получая из костяшки 1-2 костяшку 2-1. 
Определите максимально длинную цепочку костяшек домино, которую можно получить. Под цепочкой следует понимать последовательность костяшек, у которой второе число первой костяшки равно первому числу второй.

Входные данные
в первой строке задается число N – количество выложенных костяшек (\(0<N<10000\)). Далее следуют N пар чисел по два в строке.

Выходные данные
Программа должна вывести одно число – максимальную длину цепочки.
 
Примеры
Входные данные Выходные данные
1 5
1 2
2 3
5 4
5 5
5 1
3

Пояснение: если перевернуть третью костяшку, то образуется цепочка: 4-5 5-5 5-1.

Текстовый файл состоит не более чем из 106 символов английского алфавита (от A до Z). Определите длину самой длинной подцепочки, состоящей только из согласных букв. В ответе укажите длину данной подцепочки.

Для выполнения этого задания следует написать программу. 
 
Файл  
task24-1.txt

Согласные буквы английского алфавита: BCDFGHJKLMNPQRSTVWXZ
 
Текстовый файл состоит не более чем из 106 символов английского алфавита (от A до Z). Определите длину самой длинной подцепочки, состоящей только из гласных букв. В ответе укажите длину данной подцепочки.

Для выполнения этого задания следует написать программу. 

Гласные буквы английского алфавита: AEIOUY
 
Текстовый файл состоит не более чем из 106 символов английского алфавита (от A до Z). Определите длину самой длинной подцепочки, состоящей из одинаковых символов. В ответе укажите сначала символ, из которого строится данная подцепочка, затем, слитно без разделителей, длину данной подцепочки. Если таких подцепочек несколько, то укажите ту, в которой буква стоит позже в алфавите.

Для выполнения этого задания следует написать программу. 
 
Файл  
task24-1.txt

 
Текстовый файл состоит не более чем из 106 символов английского алфавита (от A до Z). Определите длину самой длинной подцепочки, состоящей из одинаковых символов. В ответе укажите сначала символ, из которого строится данная подцепочка, затем, слитно без разделителей, длину данной подцепочки. Если таких подцепочек несколько, то укажите ту, в которой буква стоит раньше в алфавите.

Для выполнения этого задания следует написать программу. 
 
Файл  
task24-1.txt

 
Автомат обрабатывает натуральное число N по следующему алгоритму:
1) Строится двоичная запись числа N.
2) Удаляются две последние цифры
3) Полученное число переводится в десятичную запись и выводится на экран.
Сколько разных значений будет показано на экране автомата при последовательном вводе всех натуральных чисел от 20 до 600?
Поделиться
Класснуть