Информатика

2 621 задачавместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Дано число n. Создайте двумерный массив размером nхn и заполните его по следующему правилу. На главной диагонали должны быть записаны числа 0. На двух диагоналях, прилегающих к главной, числа 1. На следующих двух диагоналях числа 2 и т.д.

Формат входных данных
На вход подается одно единственное число n (n<=10).

Формат выходных данных
Выведите на экран заполненную матрицу.
На вход программе подаются два целых числа n, m, каждое в отдельной строке \(0<n<=12, 0<=m<60\) , указывающие момент времени "n часов m минут". Определите наименьшее число полных минут, которое должно пройти до того момента, когда часовая и минутная стрелки ни циферблате совпадут, не обязательно на каком-то делении. Вещественную арифметику не использовать.

Задачу необходимо решить без использования условных операторов (в том числе без тернарного оператора ?: в С++) и\или циклов. Кроме того, нельзя использовать операции сравнения и логический (булевский) тип данных.

Примеры
Входные данные Выходные данные
1 2
50
26
2 3
0
16

Вам требуется нарисовать на экране ёлочку высоты H.

Входные данные: Вводится одно натуральное число H, не превосходящее 20.

Выходные данные: Выведите ёлочку из звёздочек (см. примеры).


Примеры
Входные данные Выходные данные
1 2
 *
***
2 4
   *
  ***
 *****
*******
✓ 97✗ 122700средняяВойти и решать

Для настольной игры используются карточки с номерами от 1 до N (N – натуральное число, не превышающее 106). Одна карточка потерялась. Найдите ее. 

Входные данные: Дано N, далее N-1 номеров оставшихся карточек.

Выходные данные: Требуется вывести номер потерянной карточки.

Примеры
Входные данные Выходные данные
1 5
1
2
3
4
5
2 4
3
2
4
1
✓ 107✗ 244600лёгкаяВойти и решать

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

Формат входных данных
В первой строке записаны, через пробел, размеры матрицы: количество строк N и количество столбцов M (1<= N, M <= 100). Далее идут  N строк, в каждой записано по M натуральных чисел, разделённых пробелами - элементы матрицы.
 

Формат выходных данных
Программа должна вывести все столбцы, в которых есть элемент, равный максимальному элементу матрицы. Каждый столбец выводится в одну строку, элементы разделяются пробелами. Столбцы должны следовать в том порядке, в котором они стоят в матрице.

Напишите программу, которая определяет, сколько в матрице есть K -значных чисел, сумма цифр каждого из которых кратна R .
 

Формат входных данных
В первой строке записаны, через пробел, размеры матрицы: количество строк N и количество столбцов M (1 <= N, M <= 100). В следующих N строках записаны строки матрицы, в каждой – по M натуральных чисел, разделённых пробелами. Затем в двух разных строках вводятся числа K и R .
 

Формат выходных данных
Программа должны вывести одно число – количество K -значных чисел, сумма цифр каждого из которых кратна R .

Напишите программу, которая находит минимальный и максимальный элементы в матрице. Если в матрице есть несколько одинаковых минимальных (максимальных) элементов, нужно найти индексы первого такого элемента в порядке обхода по строкам: слева направо, сверху вниз.
 

Формат входных данных
В первой строке записаны через пробел размеры матрицы: количество строк N и количество столбцов M (1 <= N, M <= 100). В следующих N строках записаны строки матрицы, в каждой – по M натуральных чисел, разделённых пробелами.


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

Напишите программу, которая определяет, сколько раз встречается в матрице элемент, равный K .
 

Формат входных данных
В первой строке записаны через пробел размеры матрицы: количество строк N и количество столбцов M (1<=N, M <= 100). В следующих N строках записаны строки матрицы, в каждой – по M натуральных чисел, разделённых пробелами. В последней строке записано целое число K.
 

Формат выходных данных
Программа должна вывести количество элементов матрицы, равных K.

«Да пребудет с тобой Сила» — знаменитая фраза, которую, наверняка, слышали даже те, кто не интересуется вселенной «Звёздных войн». 
Способность индивидуума управлять Силой напрямую зависит от уровня мидихлориан в его организме.

Пусть мы знаем силу каждого из N джедаев: A1,...,AN.
Обозначим максимальное и минимальное значение силы, как max(A) и min(A), соответственно.
Вычислим общую силу всех джедаев SS=A1+A2+…+AN.
Заменим силу каждого джедая на разницу S и этого элемента: Ai:=S-Ai, \(1<=i<=N\).
Такое преобразование назовем Приращением силы.

Напишите программу, которая по массиву B, полученному в результате K–кратного Приращения силы к некоторому списку сил джедаев, вычислит разность max(A)-min(A).

Входные данные 
Первая строка содержит целые числа N и K, где N — количество элементов массива B (\(2 <= N <= 10000\)), а K — количество применений операции Приращения силы к начальному массиву A\(1 <= K <= 100\)
Вторая строка содержит N элементов массива B. Элементы массива B — целые числа, принадлежащие диапазону от -2 000 000 000 до 2 000 000 000.

Выходные данные 
Единственная строка выходного файла должна содержать целое число - разность max(A) и min(A).
 
Пример
Входные данные Выходные данные
1 4 2
45 52 47 46
7

Хотите стать джедаем? Тогда приводим для вас кодекс рыцарей-миротворцев:
Нет волнения — есть покой
Нет невежества — есть знание
Нет страсти — есть безмятежность
Нет хаоса — есть гармония
Нет смерти — есть Сила

Кроме постоянных тренировок, падаваны все-таки имеют время на отдых и некоторые развлечения. Одно из любимых - это игра в Кегельбан.

N кеглей выставляют в один ряд, занумеровав их слева направо числами от 1 до N. Затем по этому ряду бросают K шаров, при этом i-й шар сбивает все кегли с номерами от li до ri включительно.
Ваша задача - определить, какие кегли остались стоять на месте.

Входные данные 
Программа получает на вход количество кеглей N (1<=N<=100) и количество бросков K (1<=K<=10) Далее идет K пар чисел liri, при этом \(1<=l_i<=r_i<=N\).

Выходные данные 
Программа должна вывести последовательность из N символов, где j-й символ есть “I”, если j-я кегля осталась стоять, или “.”, если j-я кегля была сбита.
 
Пример
Входные данные Выходные данные
1 10 3
8 10
2 5
3 6
I.....I...
С группой юнлингов занимается один джедай, но когда они переходят в ранг падаванов, то к ним прикрепляется, индивидуально, один мастер-джедай. Заметное отличие падавана - это косичка. Она заплеталась за правым ухом, а остальные волосы были аккуратно уложены.

Падаван сопровождал своего учителя во всех опасных миссиях в галактике. Но иногда мастер мог оставить своего ученика, если считал, что данное задание ему не по зубам.

Жили и тренировались падаваны не только в храме, но и в специальных академиях и звездных кораблях.

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

Пронумеруем всех падаванов в шеренге натуральными числами 1, 2, 3, ..., N (\(1 <= N <= 1000\)).
Напишите программу, которая определит итоговое расположение падаванов после двух прыжков с переворотом. Сначала прыжки с переворотом делаются от падавана с номером A до падавана с номером B, а затем от C до D (\(A<B\)\(C < D\); \(1 <= A, B, C, D <= N\)).


Входные данные 
Вводятся натуральные числа числа NABCD.

Выходные данные 
Требуется вывести полученную последовательность.
 
Примеры
Входные данные Выходные данные
1 9 2 5 6 9 1 5 4 3 2 9 8 7 6
2 9 3 6 5 8 1 2 6 5 8 7 3 4 9
На обучение в Орден Джедаев брали совсем юных, чувствительных к Силе, детей. Но бывали и исключения. На данном этапе обучения их называли "юнлингами". С группой юнлингов занимается один джедай, но когда они переходят в ранг падаванов, то к ним прикрепляется, индивидуально, один мастер-джедай.

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

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

Входные данные
На вход подается 5 натуральных чисел от 1 до 20, разделенных пробелом.

Выходные данные
Выведите те же числа в том же порядке, взяв в скобки минимальное (а если их несколько – самое левое из них) и максимальное (а если их несколько – самое правое из них) число, а также сумму всех чисел, не взятых в скобки. Все числа (включая сумму) должны быть напечатаны в одной строке и разделены одним пробелом (внутри скобок пробелов быть не должно). Перед суммой должен стоять знак равенства, отделенный слева и справа одним пробелом. Порядок оценок должен быть такой же, как и во входных данных.
 
Примеры
Входные данные Выходные данные
1 1 2 3 4 5 (1) 2 3 4 (5) = 9
В своих действиях джедаи используют Силу. Она описывается как энергетическое поле, которое создают все живые существа, которое связывает воедино все в галактике. По сути, это аналог китайской концепции ци. Есть у Силы и научная основа: в процессе «клеточного дыхания» происходят химические реакции, генерирующие электрический импульс, хоть и микроскопический.
Энергетический импульс можно измерить числом от 1 до 9. У каждого джедая, в зависимости от его силы и опыта, свой энергетический импульс. Энакин Скайуокер решил подсчитать, сколько джедаев с определенным энергетическим импульсом.
Напишите программу, которая автоматизирует данный подсчет.

Входные данные
На вход программы будет подаваться последовательность чисел, заканчивающаяся нулем (все числа вводятся в одной строке, через пробел). Всего будет введено не более 100000 чисел.

Выходные данные
Подсчитайте во входной последовательности количество единиц, количество двоек, количество троек и т.д. и выдайте результат. В выходных данных всегда должно быть 9 чисел.
 
Пример
Входные данные Выходные данные
1 1 1 4 1 5 8 6 3 5 1 0 4 0 1 1 2 1 0 1 0
«Звездные войны» - одна из самых известных фантастических саг, снятая Джорджем Лукасом, которая включает в себя 6 фильмов. Кроме фильмов, снято уже огромное количество сериалов, мультфильмов и игр.
Главные герои саги  -  рыцари-джедаи, которые управляют сверхъестественной силой и ловко орудуют световыми мечами.
Во вселенной «Звездных войн» джедаи возникли примерно за 25 тысяч лет до событий, описываемых в классической кинотрилогии. Они – звездные рыцари, защитники мира и справедливости в «очень далекой галактике». Свои способности они используют для защиты себя и других, но никогда – для нападения. Суть их жизни – в служении другим. Суть их пути – самосовершенствование через познание и каждодневную тренировку.

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

Но вот незадача: каждый Учитель подготовил список, да еще и с указанием - какой вид боевой тренировки проводить. И у всех Учителей тренировки оказались важные, но у всех — разные! Верховный Совет решил объединить предложения всех Учителей! Если какой-то день есть в списке хотя бы одного Учителя, то в этот день проводится боевая тренировка.

Только одна проблема осталась: некоторые дни оказались в списках сразу у нескольких Учителей. Было решено перенести некоторые боевые тренировки на более поздние дни, так, чтобы в каждый день получалась только одна боевая тренировка, и переносы были бы, как можно короче.

Пусть, например, четыре Учителя сразу предложили сделать 5-й день - днем  боевой  тренировки. Тогда перенесем три из этих четырех дней 6, 7 и 8 — так, что днями боевой тренировки будут дни с 5 по 8, включительно. А если оказывается, что, например, день 7 тоже предложен в качестве боевой тренировки кем-нибудь из Учителей, то перенесем этот день еще дальше — на день 9.

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


Входные данные
В первой строке задается одно число N — количество дней, на которые Верховный Совет хочет запланировать тренировки. Во второй строке -  N неотрицательных целых чисел - для каждого дня указано, сколько Учителей предложили считать его днем боевой тренировки. Гарантируется, что \(1<=N<=100000\), и что сумма всех чисел во второй строке не превосходит 100000.

Выходные данные
Выведите одну строку, состоящую из символов “+” или “-”. “+” обозначайте день боевой тренировки, “-” -  медитации. Выведите, как минимум, N символов - по одному для каждого из дней, на которые проводится планирование. Но если боевые тренировки приходится переносить на дни после N-го (что допустимо), то выведите больше символов - до последнего дня боевой тренировки. Символы разделяйте пробелами.
 
Примеры
Входные данные Выходные данные
1 5
0 3 0 0 0
- + + + -
2 10
0 4 0 2 0 0 0 0 1 0
- + + + + + + - + -
3 3
0 3 0
- + + +

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

Для простоты будем считать, что все карты различны по номиналу, а также, что самая младшая карта побеждает самую старшую карту ("шестерка берет туза").
Игрок, который забирает себе карты, сначала кладет под низ своей колоды карту первого игрока, затем карту второго игрока (то есть карта второго игрока оказывается внизу колоды).
Напишите программу, которая моделирует данную игру и определяет, кто выигрывает. В игре участвует 10 карт, имеющих значения от 0 до 9, большая карта побеждает меньшую, карта со значением 0 побеждает карту 9.


Входные данные: Программа получает на вход две строки: первая строка содержит 5 чисел, разделенных пробелами — номера карт первого игрока, вторая – аналогично 5 карт второго игрока. Карты перечислены сверху вниз, то есть каждая строка начинается с той карты, которая будет открыта первой.
Выходные данные: Программа должна определить, кто выигрывает при данной раздаче, и вывести слово first или second, после чего вывести количество ходов, сделанных до выигрыша. Если на протяжении 106 ходов игра не заканчивается, программа должна вывести слово botva.

Примеры
Входные данные Выходные данные
1 1 3 5 7 9
2 4 6 8 0
second 5
✓ 92✗ 196700средняяВойти и решать

Каждый день к Грегори Хаусу приходит много больных, и у каждого измеряется уровень гемоглобина в крови. Данные по всем пациентам заносятся в базу данных.

Но волчанка попадается один раз на миллион, а работать с остальными неинтересно. Чтобы Хаус не выгонял больных, Кадди иногда запрашивает статистику по последним больным: ей хочется знать сумму их уровня гемоглобина.

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

Автоматизацию процесса Хаус поручил Чейзу. Но Чейз почему-то не справился с этой задачей и попросил вас ему помочь.

Входные данные: Первой строкой входного файла задано число ( 1<= <= 100000 )  — число обращений к базе данных. Запросы к базе выглядят следующим образом: x ( 1 <=x <= 10 )  — добавить пациента с уровнем гемоглобина в базу, - — удалить последнего пациента из базы, ( 1 <= k <= 100000 )  — вывести суммарный гемоглобин последних пациентов. Гарантируется, что не превосходит число элементов в базе. Также гарантируется, что запросов на удаление к пустой базе не поступает. Перед началом работы база данных пуста.

Выходные данные: Для каждого запроса " - " вывести уровень гемоглобина в крови пациента, а для каждого запроса " ? " — суммарный гемоглобин у последних поступивших пациентов. Ответы выводите в порядке поступления запросов.


Примеры
Входные данные Выходные данные
1 7
+1
+2
+3
?2
-
-
?1
5
3
2
1
✓ 149✗ 439700средняяВойти и решать
Вводится последовательность целых чисел, оканчивающаяся нулем. Число 0 в последовательность не входит.
Выведите элементы последовательности в обратном порядке. Для хранения данных используйте стек.

Входные данные 
Вводится последовательность целых чисел, по модулю не превосходящих 10000. Ввод заканчивается, когда будет введено число 0. Всего чисел не более 100 (не считая нуля).

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

 
Примеры
Входные данные Выходные данные
1 1 2 3 4 5 0 5 4 3 2 1
✓ 1 126✗ 1 683500лёгкаяВойти и решать
Реализуйте структуру данных "стек". Напишите программу, содержащую описание стека и моделирующую работу стека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:

push n
Добавить в стек число n (значение n задается после команды). Программа должна вывести ok.

pop
Удалить из стека последний элемент. Программа должна вывести его значение.

back
Программа должна вывести значение последнего элемента, не удаляя его из стека.

size
Программа должна вывести количество элементов в стеке.

clear
Программа должна очистить стек и вывести ok.

exit
Программа должна вывести bye и завершить работу.

Перед исполнением операций back и pop программа должна проверять, содержится ли в стеке хотя бы один элемент. Если во входных данных встречается операция back или pop, и при этом стек пуст, то программа должна вместо числового значения вывести строку error.

Входные данные: Вводятся команды управления стеком, по одной на строке

Выходные данные: Программа должна вывести протокол работы стека, по одному сообщению на строке

Примеры
входные данные
size
push 1
size
push 2
size
push 3
size
exit
выходные данные
0
ok
1
ok
2
ok
3
bye
✓ 23✗ 87700средняяВойти и решать

Реализуйте структуру данных "стек". Напишите программу, содержащую описание стека и моделирующую работу стека, реализовав все указанные здесь методы.  Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:

push n
Добавить в стек число n (значение n задается после команды). Программа должна вывести ok.

pop
Удалить из стека последний элемент. Программа должна вывести его значение.

back
Программа должна вывести значение последнего элемента, не удаляя его из стека.

size
Программа должна вывести количество элементов в стеке.

clear
Программа должна очистить стек и вывести ok.

exit
Программа должна вывести bye и завершить работу.

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

Команды управления стеком вводятся в описанном ранее формате по 1 на строке.

Гарантируется, что набор входных команд удовлетворяет следующим требованиям: максимальное количество элементов в стеке в любой момент не превосходит 100, все команды pop и back корректны, то есть при их исполнении в стеке содержится хотя бы один элемент.

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

Требуется вывести протокол работы со стеком, по 1 сообщению в строке

Примеры
входные данные

push 3
push 14
size
clear
push 1
back
push 2
back
pop
size
pop
size
exit

выходные данные
ok
ok
2
ok
ok
1
ok
2
2
1
1
0
bye
✓ 26✗ 59700средняяВойти и решать

Громозека с планеты Чумороза впечатлителен, раним, легко приходит в уныние и начинает плакать, попутно выпуская из ноздрей едкий дым. 
Громозека привез со своей родной планеты N штук жевательных лент, которую так любят земные дети. Он хочет поделить все ленты между K детьми. Но, оказывается, если у детей размер жевательной ленты будет различным, то они начнут ругаться и ссориться. В этот момент Громозека придёт в уныние. 
Помогите Громозеке поделить все жевательные ленты таким образом, чтобы из них можно было набрать K штук одинаковых. Радость детей прямо пропорциональна длине жевательных лент. Громозека хочет, чтобы дети получили как можно больше радости.
 

Входные данные
В первой строке заданы два числа - N (1 <= N <= 10001) и K (1 <= K <= 10001). Далее, в каждой из последующих N строк, записано по одному числу - длина каждой привезенной жевательной ленты. Длина ленты задана в сантиметрах. Все длины лежат в интервале от 1 до 107 сантиметров включительно.

Выходные данные
Выведите одно целое число - максимальную длину жевательной ленты в сантиметрах. В случае, если Громозека придёт в уныние, выведите 0.
 
Примеры
Входные данные Выходные данные
1 4 11
802
743
457
539
200
Поделиться
Класснуть