Информатика

4 314 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Дед Мороз принёс Алисе новогодний подарок - Бинарную картину, которая представляет собой матрицу размером n x n, где каждое значение равно 0 или 1. Однако, перед тем как положить его под елку, Дед Мороз заметил, что полученная картина немного отличается от той, которую она заказывала.

Чтобы получить картинку, которую хотела Алиса, нужно выполнить следующие два шага:

  1. Отразить картинку горизонтально: перевернуть каждую строку матрицы.
  2. Инвертировать каждый пиксель: заменить каждое значение 0 на 1 и каждое значение 1 на 0.

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

Помогите Деду Морозу написать программу для посоха, иначе дети могут остаться без новогодних подарков!

Формат входных данных
Программа получает на вход в первой строке число n - размер картины (1 <= n <= 20). В каждой из следующих n строк написано по n чисел 0 или 1

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

Вы замечательный родитель и хотите подарить детям подарки. Но, чтобы не избаловать своих детей, вы должны дать каждому ребенку не более одного подарка.
Каждый ребенок i имеет уровень ожидания равный g[i] - целое число, показывающее минимальный размер подарка, получив который ребенок обрадуется. Каждый подарок j имеет размер s[j]
Посчитайте, какое максимальное количество детей вы сможете обрадовать.

Входные данные
Первая строка содержит целое число n - количество детей. Вторая строка содержит n целых чисел g[i] - уровень ожидания i-го ребенка. В третьей строке записано число m - количество подарков. Четвертая строка содержит m целых чисел s[j] - размер j-го подарка.
 

Ограничения

  • 1 <= n <= 3 * 104
  • 0 <= m <= 3 * 104
  • 1 <= g[i], s[j] <= 231 - 1


Выходные данные
Выведите одно число. Ответ на задачу

Пояснения к примерам
1. В первом примере у вас есть 3 ребенка и 2 подарка. Уровни ожидания детей равны 1, 2, 3, соответственно. Имея 2 подарка размером 1, вы можете обрадовать только того ребенка, чей уровень ожидания равен 1.
Количество таких детей равно одному. Ответ 1.
2. Во втором примере у вас есть 2 ребенка и 3 подарка. Уровни ожидания детей равны 1, 2, соответственно.  3 подарка имеют достаточно большие размеры, чтобы обрадовать всех детей. Ответ 2.

Дан набор гирек массой m1, …, mN. Можно ли их разделить на четыре кучки равной массы?

Входные данные
Первая строка входных данных содержит натуральное число N, не превышающее 14. Далее идет N натуральных чисел mi, не превышающих 100.

Выходные данные
Программа должна вывести номера гирек для каждого из наборов в четыре строки или строчку No solution, если решения не существует.

Вам даны две строки s1 и s2. Вы можете удалить из обоих строк любое количество символов. Ваша цель сделать строки одинаковыми.
Найдите наименьшую сумму ASCII кодов всех удаленных символов.


Входные данные
Программа получает на вход две строки s1 и s2.

Ограничения

  • 1 <= длина s1 и s2 <= 1000;
  • s1 и s2 состоят из маленьких английских букв.

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные Примечание
1
sea
eat
231
Удаление "s" из слова "sea" добавляет к сумме ASCII код буквы "s" (115).
Удаление буквы "t" из слова "eat" добавляет к сумме 116.
В итоге обе строки равны, а 115 + 116 = 231 - минимально возможная сумма для достижения этой цели.
Юному Шелдону очень интересно проводить эксперименты, результатом которых являются различные последовательности чисел. После проведения очередных экспериментов, Шелдон получил определенную последовательность чисел и заинтересовался вопросом, сможет ли он из исходной последовательности вычеркнуть некоторые числа таким образом, чтобы оставшиеся числа образовывали возрастающую подпоследовательность, где каждый элемент строго больше предыдущего. Шелдон хочет вычеркнуть как можно меньше чисел (в том числе, если можно, то ничего не вычеркивать). 
Теперь он хочет узнать, сколько существует различных вариантов выбрать одну такую подпоследовательность из данной последовательности чисел. Помогите юному Шелдону найти ответ для заданной последовательности чисел.

Входные данные
Первая строка содержит натуральное число n - длина последовательности Шелдона. Вторая строка содержит n чисел - элементы последовательности (numsi).
 

Ограничения

  • 1 <= n <= 2000
  • -106 <= numsi <= 106


Выходные данные
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1
5
1 3 5 4 7
2
2
5
2 2 2 2 2
5
В перерывах между отработкой заклинаний, Айвен любит лакомиться бобами. Бобы в волшебной школе имеют свою особенность. На каждом бобе написано некоторое целое число. Сегодня Айвен принес мешок, в котором лежит N бобов. Айвен хочет съесть только два боба, но такие чтобы произведение чисел, которые записаны на бобах было бы наименьшим среди всех пар бобов (пару образовывают любые два боба, лежащие в его мешке).
Определите это произведение.

Входные данные 
В первой строке вводится число N (2 ≤ N ≤105) - количество бобов в мешке Айвена, а затем N целых чисел, по одному в строке - числа, записанные на бобах, в том порядке, в котором их доставал Айвен (каждое число мо модулю не превосходит 40000).
 
Выходные данные 
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 3
1
-3
2
-6
✓ 26✗ 159800средняяВойти и решать
Магистр Максимус отправился на поиски волшебных реликвий в глубины древнего храма. В храме находятся два вида артефактов - драгоценные камни и мистические амулеты. Камней A штук, а амулетов - B штук. Для того, чтобы вынести артефакты из храма, Максимус использует специальные контейнеры, в каждый из которых можно поместить только три артефакта. При этом в каждом контейнере должны быть артефакты обоих видов - либо два камня и один амулет, либо один камень и два амулета.
Помогите Магистру Максимусу определить, можно ли упаковать все имеющиеся артефакты в контейнеры, и если да, то предложить подходящий способ размещения артефактов по контейнерам.


Входные данные
Программа получает на вход два целых числа A и B, записанных в отдельных строках. 1 <= A <= 109, 1 <= B <= 109.

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

Три скворца сидят на ветке дерева. Ветку дерева будем считать числовой прямой. С учетом этого, можно сказать, что скворцы сидят в трёх разных точках с целочисленными координатами ab, c. Когда скорцам становится скучно, один из крайних скворцов перелетает на другое место (скворец считается крайним, если слева или справа нет другого скворца). Причем, из-за того, что скворцы не хотят улетать друг от друга слишком далеко, скворец, который решил сменить положение, перелетает только в целочисленную точку между двумя другими скворцами, если такая есть. Скворцы могут менять свое положение до тех пор пока их положение не станет "не летным". "Не летным" называется положение, при котором ни один из скорцов не может перелететь и сесть между двумя другими в целочисленную точку. 

По начальному положению скворцов определите минимальное и максимальное число перелетов, которые могут совершить скворцы, пока не попадут в какое-нибудь "не летное" положение.



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

В трёх строках заданы три различных целых числа - ab, c (1 <= ab, c <= 1018), исходные позиции скворцов.


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

Выведите два числа -  минимальное и максимальное число перелетов, за которое скворцы могут достичь "не летного" положения.

  
Примеры
Входные данные Выходные данные
1
1
3
4
1
1
2
1
10
2
2
7
3
1
2
3
0
0
4
2
1
5
2
2

Магистр Аркадий очень любит работать со строками и превращать одни строки в другие. Он считает, что две строки s и t являются "магическими", если символы в можно заменить таким образом, чтобы получилась строка t. При этом, все вхождения символа заменяются на другой символ с сохранением порядка следования символов. НО, никакие два символа не могут быть заменены на один и тот же символ. Однако символ может быть заменен на самого себя.

Входные данные
Программа получает на вход две строки s и t.

Ограничения

  • 1 <= Длина строки s <= 5 * 104
  • Длина строки s = Длина строки t
  • s и t состоят из любых допустимых ASCII символов



Выходные данные
Выведите YES, если данные строки "магические" и NO в противном случае. Вы можете можете выводить ответ в любом регистре.
 

Примеры
Входные данные Выходные данные
1
egg
add
YES
1
foo
bar
NO
✓ 19✗ 203900средняяВойти и решать
У исполнителя Счетовод две команды, которым присвоены номера:
1. прибавь A
2. умножь на B
3. умножь на С

Первая из них увеличивает на A число на экране, вторая умножает число на экране на B, третья умножает число на экране на С. Программа для Счетовода – это последовательность команд. Сколько существует таких программ, которые исходное число S преобразуют в число F и при этом траектория вычислений программы содержит число num и не содержит число misnum?

Гарантируется, что имеется хотя бы одна программа, которая получает из числа S число F, B не равно C.

Входные данные
Программа получает на вход семь чисел в следующем порядке: A, B, C, S, F, num, misnum (1<= A <= 10, 2 <= B,C <= 10, 1 <= S <= 100, 1 <= F <= 103, S <= num < misnum <= F). Каждое число вводится с новой строки.

Выходные данные
Выведите ответ на задачу. Гарантируется, что ответ не превышает 263.
 
Примеры
Входные данные Выходные данные
1 1
2
3
3
46
12
25
120
У исполнителя Счетовод две команды, которым присвоены номера:
1. вычти A
2. вычти B
3. подели на С

Первая из них уменьшает на A число на экране, вторая уменьшает число на экране на B, третья делит целочисленно число на экране на С (с отбрасыванием остатка, в случае, если число на экране не делится на С). Программа для Счетовода – это последовательность команд. Сколько существует таких программ, которые исходное число S преобразуют в число F и при этом траектория вычислений программы содержит число num1 и число num2?

Гарантируется, что имеется хотя бы одна программа, которая получает из числа S число F, A не равно B.

Входные данные
Программа получает на вход семь чисел в следующем порядке: A, B, C, S, F, num1, num2 (1<= A,B,C <= 10, 1 <= S <= 100, 1 <= F <= 103, S >= num1 > num2 >= F). Каждое число вводится с новой строки.

Выходные данные
Выведите ответ на задачу. Гарантируется, что ответ не превышает 263.
 
Примеры
Входные данные Выходные данные
1 1
3
3
22
2
11
4
369
У исполнителя Счетовод две команды, которым присвоены номера:
1. прибавь 1
2. увеличь каждый разряд числа на 1


Первая команда увеличивает число на 1, вторая - увеличивает каждый разряд числа на 1, если он не равен 9. 
Например, число 45 с помощью команды 2 превратится в 56, а 49 в 59 (так как младший разряд равен 9 и он остается без изменений).
Программа для Счетовода – это последовательность команд.
Сколько существует программ, которые число S преобразуют в число F


Входные данные
Программа получает на вход два числа (каждое число записано в отдельной строке): S и F ( 1 <= S <= 100, 10 <= F <= 1000, S < F). 

Выходные данные
Выведите ответ на задачу. Гарантируется, что ответ не превышает 263.
 
 
Примеры
Входные данные Выходные данные
1 26
49
22

Вы - маг, странствующий по волшебному лесу, в поисках своей утраченной магической силы. Эта магическая сила находится в волшебных кристаллах, которые растут на деревьях в этом волшебном лесу. На каждом дереве растет только один волшебный кристалл. Так как вы маг, то вы знаете какой силой обладает тот или иной кристалл, растущий на определенном дереве в этом лесу. Вы хотите получить в этом лесу как можно больше магической силы. Для этого вам следует выполнить следующее действие любое количество раз:

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

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

Входные данные
Первая строка входных данных содержит число n - количество деревьев в волшебном лесу. Вторая строка содержит n чисел ai - волшебная сила кристалла на i-м дереве.

Ограничения на входные данные

  • 1 <= n <= 2 * 104
  • 1 <= a[i] <= 104
  • 1 <= i <= n



Выходные данные
Выведите максимальную магическую силу, которую вы можете получить.
 

Примеры
Входные данные Выходные данные
1 3
3 4 2
6
2 6
2 2 3 3 3 4
9

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

Зная уровень магической энергии в каждом доме, найдите максимальное количество магической энергии, которое вы можете собрать сегодня, избегая извлечения энергии из соседних домов в одну и ту же ночь. Кроме этого, определите заранее какие дома вы должны посетить?

Входные данные
В первой строке записано число n - количество домой вдоль улицы. Во второй строке - n целых чисел ai - количество магической энергии в i-м доме.

Ограничения на входные данные 

  • 1 <= n <= 100
  • 0 <= a[i] <= 400
  • 1 <= i <= n



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

Примеры
Входные данные Выходные данные
1 4
3 2 2 1
5
1 3
2

5
2 7 9 3 1

12
1 3 5

Следующий больший элемент некоторого элемента x в массиве - это первый больший элемент, который находится справа от x в том же массиве.

Вам даны два различных целочисленных массива nums1 и nums2 с индексами 0, где nums1 является подмножеством nums2.

Для каждого 0 <= i < nums1.length найдите индекс j такой, что nums1[i] == nums2[j] и определите следующий больший элемент nums2[j] в nums2. Если следующего большего элемента нет, то ответом на этот запрос будет -1.

Выведите n чисел таких, что каждое из них будет являться следующим большим элементом, как описано выше.

Входные данные
В первой строке записано натуральное число n - размер массива nums1. Вторая строка содержит n чисел - элементы массива nums1. В третьей строке записано натуральное число m - размер массива nums2. Четвертая строка содержит m чисел - элементы массива nums2.

Ограничения на входные данные

  • 1 <= nums1.length <= nums2.length <= 50000
  • 0 <= nums1[i], nums2[i] <= 109
  • Все числа в массивах nums1 и nums2 уникальны.
  • Все числа массива nums1 содержатся в nums2.

a.length - размер массива a

Выходные данные
Выведите ответ на задачу.
 

Примеры
Входные данные Выходные данные
1
3
4 1 2
4
1 3 4 2
-1 3 -1
2
2
2 4 
4
1 2 3 4
3 -1

Дано целое число  N<=103 и N целых чисел. необходимо найти три числа, произведение которых максимально.

Если таких троек чисел несколько, выведите любую из них. 

Входные данные
В первой строке задано целое число 3 <= N <= 103 - количество элементов в списке.
Во второй строке заданы N целых  элементов списка, не превосходящих по модулю 30000.

Выходные данные
Выведите ответ на задачу.
 

Примеры
Входные данные Выходные данные
1 9
3 5 1 7 9 0 9 -3 10
10 9 9
2 3
-5 -30000 -12
-5 -12 -30000

В Сильвертауне расположены n розничных магазинов. В логистический центр города доставили m типов товаров с различным количеством, которые необходимо распределить по всем розничным магазинам. Логистическому центру необходимо распределить все товары по магазинам, следуя следующим правилам:

- Каждому магазину распределяется не более одного типа товара, но любое его количество.
- После распределения каждому магазину предоставляется некоторое количество товаров (возможно нулевое).

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

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



Входные данные
Первая строка входных данных содержит два натуральных числа, записанных через пробел: n и m (1 <= m <= n <= 105) - количество розничных магазинов и количество типов товаров. Во второй строке содержится m целых чисел qi - количество i-го типа товара (0 <= i < 105,  1 <= qi <= 105).
 
Выходные данные
Выведите минимально возможное x.
 
Примечание
В первом тестовом примере оптимальным распределением будет следующее:
- 11 продуктов типа 0 распределяются по первым четырем магазинам в следующих количествах: 2, 3, 3, 3
- 6 продуктов типа 1 распределяются по двум другим магазинам в следующих количествах: 3, 3
Максимальное количество товаров, предоставляемых в любой магазин, составляет max(2, 3, 3, 3, 3, 3) = 3.
Примеры
Входные данные Выходные данные
1 6 2
11 6
3
2 7 3
15 10 10
5
3 1 1
100000
100000

Напишите программу, которая вычисляет значение арифметического выражения, записанного в виде символьной строки. В выражении используются целые числа, знаки арифметических операций, круглые скобки, вызовы функций ( sin , cos , abs , sqrt ) и имена переменных (только однобуквенные). Результат операции деления – вещественное число.

 

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

Первая строка содержит правильную запись арифметического выражения. В следующих нескольких строках записаны значения всех переменных, использованных в выражении. Каждая из этих строк имеет формат:

<имя переменной>=<значение>

Каждое имя переменной состоят из одной строчной буквы латинского алфавита.

 

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

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

 
Примеры
Входные данные Выходные данные
1
cos(z+abs(sqrt(r*sin(x+4))))
r=5
z=10
x=3
0.729
✓ 3✗ 81 000средняяВойти и решать

Напишите программу, которая вычисляет значение арифметического выражения, записанного в виде символьной строки. В выражении используются целые числа, знаки арифметических операций, круглые скобки и вызовы функций ( sin , cos , abs , sqrt ). Результат операции деления – вещественное число.

 

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

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

 

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

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

 
Примеры
Входные данные Выходные данные
1
12+cos(sqrt(12+sin(2)))
11.100
✓ 8✗ 10800средняяВойти и решать

Напишите программу, которая вычисляет значение арифметического выражения, записанного в виде символьной строки. В выражении используются только целые числа, знаки арифметических операций (+-*/) и скобки произвольной вложенности. Результат операции деления – целое число.

 

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

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

 

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

Программа должна вывести значение переданного ей выражения как целое число.

 
Примеры
Входные данные Выходные данные
1
(5+20)*(98-34)/(5*8-23)
94
✓ 12✗ 41800средняяВойти и решать
Поделиться
Класснуть