Информатика

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

Каждый игрок похвастал, сколько у него тузов. Определите, сколько игроков заведомо солгали.

Например, они сказали 1, 1, 1, 2. Следовательно, заведомо солгал 1 игрок. (Какие-то трое могли сказать правду, но все четверо правду сказать не могли, так как тузов всего 4).

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

Выходные данные
Выведите одно число – минимальное количество игроков, которые заведомо солгали. Если все одновременно могли сказать правду, выведите число 0.
Примеры
Входные данные Выходные данные
1 1 1 1 2 1
2 1 1 1 1 0
2011#38238
Представьте число 2011 в виду суммы K последовательных простых чисел (то есть простых чисел, между которыми нет других простых чисел). Например, число 31 можно представить в виде суммы трех посдедовательных простых чисел следующим образом: 7 + 11 + 13 = 31.

Входные данные
Вводится одно натуральное число K (от 1 до 2011).

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

Если разложить в сумму K слагаемых невозможно, выведите NO SOLUTION (заглавными буквами).
Примеры
Входные данные Выходные данные
1 3 661 673 677
2 2 NO SOLUTION
Дано N золотых слитков. Требуется распилить не более одного из них на две части (не обязательно равные, но с целой массой), после чего разделить слитки на две кучи равной массы.

Входные данные
В первой строке вводится одно натуральное число N, не превосходящее 100.

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

Выходные данные
Выведите массы слитков, которые вошли в первую кучку (включая массу части распиленного слитка).

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

Если решений нет, выведите фразу NO SOLUTION (заглавными буквами).

Выводить массы можно в произвольном порядке, но масса части распиленного слитка (если таковой имеется) должна быть последней.
Примеры
Входные данные Выходные данные
1 3
5 5 5
NO SOLUTION
2 4
1 2 3 8
1 2 3 1
Натуральные числа записаны в (бесконечную) таблицу, как показано на рисунке.


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

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

Выходные данные
Программа должна вывести все числа, записанные в соседних клетках с данным, в порядке возрастания. Числа должны разделяться пробелом.
Примеры
Входные данные Выходные данные
1 1 3
2 7 3 6 8 13
У Васи на клавиатуре не работает клавиша пробел. Поэтому все тексты он теперь набирает слитно. Напишите программу, которая будет разделять набранный Васей текст на слова из данного словаря.

Входные данные
Сначала на вход программы поступает текст, введенный Васей – одна строка из не более чем 100 латинских строчных букв. В следующей строке входных данных задается значение N – количество слов в словаре (N – натуральное число, не превосходящее 2000). В следующих N строках записаны слова из словаря – по одному слову в  строке, каждое слово содержит не более 20 латинских строчных букв. Слова записаны в алфавитном порядке.


Выходные данные
Выведите Васин текст с пробелами между словами (пробел после последнего слова допустим). Если возможно несколько вариантов разбиения строки на слова, выведите  любой их них. Гарантируется, что хотя бы один способ разбиения строки на словарные слова существует.
Примеры
Входные данные Выходные данные
1 whatcanido
6
a
an
can
do
i
what
what can i do 
На одном из московских вокзалов билеты продают N касс. Каждая касса работает без перерыва определенный промежуток времени по фиксированному расписанию (одному и тому же каждый день). Требуется определить, на протяжении какого времени в течение суток работают все кассы одновременно.

Входные данные
Сначала вводится одно целое число N (0 < N ≤ 1000).

В каждой из следующих N строк через пробел расположены 4 целых числа, первые два из которых обозначают время открытия кассы в часах и минутах (часы — целое число от 0 до 23, минуты — целое число от 0 до 59), оставшиеся два — время закрытия в том же формате. Числа разделены пробелами.

Время открытия означает, что в соответствующую ему минуту касса уже работает, а время закрытия — что в соответствующую минуту касса уже не работает. Например, касса, открытая с 10 ч. 30 мин. до 18 ч. 30 мин., ежесуточно работает 480 минут.

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

Выходные данные
Требуется вывести одно число — суммарное время за сутки (в минутах), на протяжении которого работают все N касс.
Примеры
Входные данные Выходные данные Пояснения
1 3
1 0 23 0
12 0 12 0
22 0 2 0
120 Первая касса работает с часу до 23 часов, вторая – круглосуточно, третья – с 22 часов до 2 часов ночи следующего дня. Таким образом, все три кассы одновременно работают с 22 до 23 часов и с часу до двух часов, то есть 120 минут.
2 2
9 30 14 0
14 15 21 0
0 Первая касса работает до 14 часов, а вторая начинает работать в 14 часов 15 минут, то есть одновременно кассы не работают.
3 2
14 00 18 00
10 00 14 01
1 Вместе кассы работают лишь одну минуту – с 14:00 до 14:01 (в 14:01 вторая касса уже не работает).
Из шахматной доски по границам клеток выпилили связную (не распадающуюся на части) фигуру без дыр. Требуется определить ее периметр.

Входные данные
Сначала вводится число N (1 ≤ N ≤ 64) – количество выпиленных клеток. В следующих N строках вводятся координаты выпиленных клеток, разделенные пробелом (номер строки и столбца – числа от 1 до 8). Каждая выпиленная клетка указывается один раз.

Выходные данные
Выведите одно число – периметр выпиленной фигуры (сторона клетки равна единице).
Примеры
Входные данные Выходные данные Пояснения
1 3
1 1
1 2
2 1
8 Вырезан уголок из трех клеток. Сумма длин его сторон равна 8.
2 1
8 8
4 Вырезана одна клетка. Ее периметр равен 4.
К Коле на день рождения придут n друзей. По этому случаю он заготовил n бутылок различных напитков, а каждый из друзей принесет свой стакан.

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

Коля хочет своеобразно оценить сколько способов есть разлить напитки по стаканам друзей так, чтобы все напитки полностью поместились в стаканы. Так как число способов может быть довольно большим, Коля хочет знать его по модулю 1 000 000 007. Помогите Коле посчитать это число.
Входные данные
В первое строке дано число t - число тестовых наборов (1≤t≤100).
Каждый тестовый набор задается тремя строками. В первой из них дано число ni - число бутылок напитков и стаканов в i-ом наборе (1≤ni≤105).
Во второй строке заданы ni чисел ai,j - объемы бутылок в i-м наборе.
В третьей строке даны ni чисел bi,j - объемы стаканов в i-м наборе (1≤ai,j,bi,j≤100).
Гарантируется, что сумма ni по всем тестовым наборам не превосходит 3⋅105.

Выходные данные
Для каждого тестового набора выведите одно число - число способов разлить напитки по стаканам друзей так, чтобы все напитки полностью поместились в стаканы, взятое по модулю 1 000 000 007.
Примеры
Входные данные Выходные данные Пояснение
1 3
3
1 1 1
1 2 1
5
1 2 3 4 5
1 2 3 4 5
3
2 2 2
2 1 2
6
1
0
В первом тестовом наборе любой напиток помещается в любой стакан. Во втором тестовом наборе, существует лишь один способ разлить напитки. В третьем наборе ни один напиток не поместится во второй стакан, поэтому ответ будет ноль
Пастбище Фермера Юрика может рассматриваться как огромная 2D-решётка ячеек (шахматная доска). Изначально пастбище пустое.

Фермер Юрик добавит N (\(1<=N<=10^5\)) коров на пастбище одну за другой. i-ая корова займёт ячейку (xi,yi), которая отличается от ячеек, занятых всеми другими коровами (\(0<=x_i,y_i<=1000\)).

Корова называется "комфортабельной", если она имеет ровно трёх соседей по горизонтали и вертикали. Комфортабельные коровы дают меньше молока, поэтому Фермер Юрик хочет добавлять коров пока нет комфортабельных (включая ту которую он добавит). Заметим, что добавляемые коровы не обязательно должны иметь координаты x и y в интервале \(0…1000\).

Для каждого i в интервале \(1…N\), выведите минимальное количество коров, которое он должен добавить, чтобы не осталось комфортабельных коров, если считать, что на пастбище находятся только коровы \(1…i\).



Входные данные
Первая строка содержит целое число N. Каждая из следующих N строк содержит по 2 разделённых пробелом целых числа (xy), указывающих  координаты ячейки с коровой.

Выходные данные
Минимальное количество коров, которое Фермер Юрик должен добавить, для каждого i в интервале \(1…N\), на отдельной строке.
 
 
Примеры
Входные данные Выходные данные Пояснение
1 9
0 1
1 0
1 1
1 2
2 1
2 2
3 1
3 2
4 1
0
0
0
1
0
0
1
2
4

Для i=4, Фермер Юрик должен добавить корову в позицию (2,1),
чтобы сделать корову в позиции (1,1) некомфортабельной.

Для i=9, лучшее что Фермер может сделать - добавить коров в позиции (2,0), (3,0), (2,−1), (2,3).

Известно, что в Китайском календаре года следуют 12-летнему циклу: Ox(Бык), Tiger(Тигр), Rabbit(Кролик), Dragon(Дракон), Snake(Змея), Horse(Лошадь), Goat(Коза), Monkey(Обезьяна), Rooster(Петух), Dog(Собака), Pig(Свинья), Rat(Крыса), и затем Ox опять. 
Уже много лет корова Беси гордится, что она родилась в год Быка. Её подружка Эльза хочет узнать сколько лет отделяет её рождение от рождения Беси и надеется, что вы поможете ей узнать это, основываясь на отношениях между датами рождения некоторых коров на ферме.



Входные данные
Первая строка ввода содержит целое число N (\(1<=N<=100\)). Каждая из следующих N строк содержит 8-словную фразу указывающую отношение между датами рождения двух коров. В следующей форме

"Mildred born in previous Dragon year from Bessie",

или

"Mildred born in next Dragon year from Bessie" (previous - предыдуший, next-следующий).

Последнее слово - имя коровы, которое или Bessie или корова ранее упомянутая в предыдущей строке ввода.
Первое слово - имя коровы, которая не Bessie и ещё не упоминалась на вводе. Все имена коров имеют не более 10 символов a..z или A..Z.

5-ое слово - один из знаков зодиака, указаных ранее.

4-ое слово либо "previous" либо "next". Например, фраза "Mildred born in previous Dragon year from Bessie", означает, что год рождения Mildred был год Дракона(Dragon), ближайший и строго раньше (не равен) года рождения Беси.



Выходные данные
Выведите количество лет, на которое отличаются дни рождения Беси и Эльзы. Гарантируется, что это число может быть определено из введённых данных.
 
 
Примеры
Входные данные Выходные данные Примечание
1 4
Mildred born in previous Dragon year from Bessie
Gretta born in previous Monkey year from Mildred
Elsie born in next Ox year from Gretta
Paulina born in next Dog year from Bessie
12

В примере выше

  • Elsie родилась на 12 лет раньше Bessie.
  • Mildred родилась на 9 лет раньше Bessie.
  • Gretta родилась на 17 лет раньше Bessie.
  • Paulina родилась на 9 лет раньше Bessie.
Беси любит искать пути в лабиринтах и играть в "крестики-нолики". Фермер Джон придумал для неё способ играть в обе игры одновременно!
Первое - "крестики-нолики" - вместо размещения X и O на решётке 3×3, коровы играют с М и О на решётке 3×3. Во время хода корова может поставить М или О в любую пустую ячейку (в отличие от стандартной игры, где один игрок всегда ставит X, а другой всегда О). Победитель этой игры тот, кто первый получит слово 'MOO' горизонтально, вертикально или по диагонали. В обратном порядке тоже засчитывается, то есть 'OOM' тоже выигрышная комбинация. Как и в стандартной игре, возможно заполнить всё поле и никто не выиграл. Ход в игре указывается 3 символами 'Mij' или 'Oij', где i и j в интервале 1…3 и указывают строку и столбец, в которые ставится соответствующий символ 'M' или 'O'.

Фермер Джон спроектировал для Беси квадратный лабиринт, представляющий решётку из N×N ячеек (3≤N≤25). Некоторые ячейки, включая все граничные ячейки, содержат большие стоги сена, предотвращающие Беси от захода в эти ячейки. Беси может свободно двигаться во все другие ячейки лабиринта предпринимая шаги в в обычных направлениях -север, юг, запад, восток. Некоторые ячейки содержат листок бумаги, на котором написан ход для "крестиков ноликов". По ходу тго, как Беси двигается по лабиринту, каждый раз, когда она попадает на такую ячейку, она должна сделать соответствующий ход в игре "крестики-нолики", в которую она играет параллельно с движением по лабиринту. Если соответствующая ячейка в "крестиках-ноликах" уже занята, то она не предпринимает никаких действий. У неё нет противника в игре "крестики-нолики", но некоторые из ячеек лабиринта могут противоречить её цели составить слово 'MOO'.

Если Беси останавливает игру "крестики-нолики" сразу после победы, определите количество различных выигрышных конфигураций в "крестиках-ноликах", которые она может сгенерировать, двигаясь соответственно в лабиринте.

ФОРМАТ ВВОДА
Первая строка содержит N.
Лабиринт определяется следующими N строками, каждая из которых содержит 3N символов. Каждая ячейка описывается блоком из 3 символов: '###' для стены, '...' для пустой ячейки, 'BBB' для ячейки в которой стартует Беси, ход для "крестиков-ноликов". Ровно одна ячейка содержит 'BBB'.

ФОРМАТ ВЫВОДА 
Выведите количество различных выигрышных комбинаций для "крестиков-ноликов" (возможно 0), которые Беси может сгенерировать движением по лабиринту, остановившись после победы.

 
Примеры
Входные данные Выходные данные Пояснение
1 7
#####################
###O11###...###M13###
###......O22......###
###...######M22######
###BBB###M31###M11###
###...O32...M33O31###
#####################
8 В этом примере имеется 8 выигрышных комбинаций, которые Беси может достичь:

O.M
.O.
MOM

O..
.O.
.OM

O.M
.O.
.OM

O..
.O.
MOM

O..
...
OOM

..M
.O.
OOM

...
.O.
OOM

...
...
OOM
Пояснения к одной из них:

O..
...
OOM
Здесь Беси сначала посещает ячейку O11, затем двигается в нижний коридор, посещая O32, M33, O31. Игра прекращается, поскольку Беси выиграла.

 
Acowdemia#38128
Беси опубликовала N статей (1 <= N <= 105). i-ая статья процитирована ci раз (0 <= ci <= 105).
h-индекс это наибольшее число h такое, что имеется не менее h статей, каждая из которых цитируется не менее чем h раз. Например, есть 4 статьи с количествами цитат (1,100,2,3), тогда h-индекс равен 2, а при количествах цитат (1,100,3,3) h-индекс равен 3.

Чтобы повысить свой h-индекс, Беси планирует написать K обзорных статей (0 <= K <= 105), каждая из которых цитирует несколько ее прошлых статей. Беси имеет право цитировать не более L статей в каждом обзоре (0 <= L <= 105). Конечно, никакая статья не может цитироваться более одного раза в одном обзоре (однако статья может цитироваться в нескольких обзорах).

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

Входные данные
Первая строка содержит N, K, L. Вторая строка содержит N разделённых пробелом целых чисел c1,...,cN.

Выходные данные
Максимальный h-индекс.
 
Примеры
Входные данные Выходные данные Пояснение
1 4 4 1
1 100 1 1
3 В этом примере Беси может написать 4 обзорные статьи, в каждой из которых можно процитировать не более 1 статьи. Если процитировать первую и третью статьи по 2 раза, её h-индекс станет 3.
2 4 1 4
1 100 1 1
2 В этом втором примере Беси может написать не более одной статьи. Если Беси процитирует любую из её 1,2 или 4 статью хоть раз, её h-индекс станет 2.
Фермер Джон открыл пастбище с целью помочь Беси и её друзьям.
Пастбище ФД можно рассматривать как большую 2D-решётку квадратных ячеек. Каждая ячейка помечена таким образом:
  • C если в ячейке корова
  • G если в ячейке трава
  • . если в ячейке нет ни коровы, ни травы
Для того, чтобы две различные коровы стали друзьями, коровы должны встретиться в ячейке с травой, которая горизонтально или вертикально соседствует с каждой из них. Во время этого процесса они съедают траву в этой ячейке, поэтому другая пара коров уже не сможет использовать эту ячейку как место встречи. Любая корова может подружиться более чем с одной другой коровой, но никакая пара коров не может встретиться и стать друзьями более одного раза.

ФД надеется, что много пар коров станут друзьями. Определите максимальное количество пар коров, которые могут стать друзьями.

ФОРМАТ ВВОДА:
Первая строка содержит N и M (2 ≤ N,M ≤ 1000).
Каждая из следующих N строк содержит M символов, описывая пастбище.

ФОРМАТ ВЫВОДА:
Определите максимальное количество пар коров, которые могут стать друзьями.
 
Входные данные Выходные данные
1 4 5
.CGGC
.CGCG
CGCG.
.CC.C
4

Если мы пометим корову в строке i и столбце j координатами (i,j), тогда в этом примере есть коровы в (1,2), (1,5), (2,2), (2,4), (3,1), (3,3), (4,2), (4,3), and (4,5). Один из способов, чтобы 4 коровы стали друзьями таков:

Коровы из (2,2) и (3,3) едят траву в (3,2).
Коровы из (2,2) и (2,4) едят траву в (2,3).
Коровы из (2,4) и (3,3) едят траву в (3,4).
Коровы из (2,4) и (1,5) едят траву в (2,5).
Юра Баранкин заполнял таблицу истинности функции \(((x \rightarrow y) \rightarrow z) \vee \bar w\). В тот момент когда его позвал гулять Костя, Юра успел заполнить лишь фрагмент из трёх различных строк таблицы. После прогулки Юра заметил, что не указал, к какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
? ? ? ? F
0 1 1 1 0
  0     0
  0 0   0

Помогите Юре восстановить столбцы таблицы. Укажите какому столбцу соответствует каждая из переменных w, x, y, z. 
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Юра Баранкин заполнял таблицу истинности функции \((y \rightarrow (x \vee w)) \rightarrow(z \wedge \neg(y \rightarrow \bar x))\). В тот момент когда его позвал гулять Костя, Юра успел заполнить лишь фрагмент из трёх различных строк таблицы. После прогулки Юра заметил, что не указал, к какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
? ? ? ? F
      0 1
0       1
1   0 0 1

Помогите Юре восстановить столбцы таблицы. Укажите какому столбцу соответствует каждая из переменных w, x, y, z. 
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Юра Баранкин заполнял таблицу истинности функции \(( \bar x \vee w \vee z \wedge \bar y) \rightarrow (\bar w \wedge y)\). В тот момент когда его позвал гулять Костя, Юра успел заполнить лишь фрагмент из четырёх различных строк таблицы. После прогулки Юра заметил, что не указал, к какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
? ? ? ? F
    1   1
  0 0 1 1
0 1   0 1
0 1 1 0 1

Помогите Юре восстановить столбцы таблицы. Укажите какому столбцу соответствует каждая из переменных w, x, y, z. 
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
На рисунке изображена схема дорог некоторого района области в виде графа, в таблице указана длина этих дорог в километрах. Таблицу и схему рисовали независимо друг от друга, нумерация деревень в таблице никак не связана с буквенными обозначениями на графе. Определите протяженность дороги из деревни Ж в деревню Д, если протяженность дороги из деревни Б в деревню Д больше протяженности дороги из деревни В в деревню Е. В ответе запишите целое число – так, как оно указано в таблице.
 
  П1 П2 П3 П4 П5 П6 П7
П1 х 15 12     9  
П2 15 х 8   6 10  
П3 12 8 х     11 9
П4       х 14   13
П5   6   14 х 18 19
П6 9 10 11   18 х 17
П7     9 13 19 17 х
На рисунке изображена схема дорог некоторого района области в виде графа, в таблице указана длина этих дорог в километрах. Таблицу и схему рисовали независимо друг от друга, нумерация деревень в таблице никак не связана с буквенными обозначениями на графе. Определите протяженность дороги из деревни Г в деревню Е, если протяженность дороги из деревни Б в деревню Д меньше протяженности дороги из деревни В в деревню Е. В ответе запишите целое число – так, как оно указано в таблице.
 
  П1 П2 П3 П4 П5 П6 П7
П1 х 15 12     9  
П2 15 х 8   6 10  
П3 12 8 х     11 9
П4       х 14   13
П5   6   14 х 18 19
П6 9 10 11   18 х 17
П7     9 13 19 17 х
На рисунке изображена схема дорог некоторого района области в виде графа, в таблице указана длина этих дорог в километрах. Таблицу и схему рисовали независимо друг от друга, нумерация деревень в таблице никак не связана с буквенными обозначениями на графе. Определите протяженность дороги из деревни Ж в деревню В, если протяженность дороги из деревни Б в деревню Г больше протяженности дороги из деревни В в деревню Г. В ответе запишите целое число – так, как оно указано в таблице.
 
  П1 П2 П3 П4 П5 П6 П7
П1 х   14   16 11  
П2   х 8 10 12    
П3 14 8 х   20    
П4   10   х 15   18
П5 16 12 20 15 х 17  
П6 11       17 х 21
П7       18   21 х
На рисунке изображена схема дорог некоторого района области в виде графа, в таблице указана длина этих дорог в километрах. Таблицу и схему рисовали независимо друг от друга, нумерация деревень в таблице никак не связана с буквенными обозначениями на графе. Определите протяженность дороги из деревни Б в деревню Д, если протяженность дороги из деревни В в деревню Г больше протяженности дороги из деревни Б в деревню Г. В ответе запишите целое число – так, как оно указано в таблице.
 
  П1 П2 П3 П4 П5 П6 П7
П1 х   14   16 11  
П2   х 8 10 12    
П3 14 8 х   20    
П4   10   х 15   18
П5 16 12 20 15 х 17  
П6 11       17 х 21
П7       18   21 х
Поделиться
Класснуть