Язык программирования

3 082 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
Даны значения двух моментов времени, принадлежащих одним и тем же суткам: часы, минуты и секунды для каждого из моментов времени. Известно, что второй момент времени наступил не раньше первого. Определите, сколько секунд прошло между двумя моментами времени.

Входные данные
Программа на вход получает три целых числа — часы, минуты, секунды, задающие первый момент времени и три целых числа, задающих второй момент времени.

Выходные данные
Выведите число секунд между этими моментами времени.
 
 
Примеры
№ Входные данные Выходные данные
1
1
1
1
2
2
2
3661
2
1
2
30
1
3
20
50
На кафедру "Прикладной информатики" университета N в новом учебном году набрали три группы первокурсников. Для практических занятий необходимо оборудовать новую аудиторию лабораторными столами. За каждым таким столом могут сидеть не более четырех студентов, причем все студенты обязаны быть из одной группы. Аудитория имеет возможность одновременно разместить студентов сразу трех групп одновременно.
Определите минимальное количество столов, которые необходимо закупить.

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

Выходные данные
Выведите ответ на задачу.
 
Примеры
№ Входные данные Выходные данные
1 15
20
24
15
Вам дается строка S длиной ровно 9 символов. Каждый символ в строке - это любая из цифр от 0 до 9. Все символы в строке различны. Выведите цифру, которой не хватает в строке.

Входные данные
На вход подается строка, состоящая из цифр. 

Выходные данные
Выведите на экран ответ на задачу
 
Примеры
№ Входные данные Выходные данные
1
023456789
1
2
459230781
6
На вход программы поступает строка s.  Используя обращения к символам по индексу и срезы строк выведите следующие подстроки:
  1. все символы, начиная с индекса 3, до середины строки включительно (при нечетной длине строки, средний символ не брать);
  2. последний символ;
  3. все символа с четными индексами (0, 2, ...);
  4. все символы с нечетнымы индексами (1, 3, ...);
  5. все символы, кроме последнего;
  6. все символы, кроме первого;
  7. все символы в обратном порядке;
  8. все символы в обратном порядке, начиная с 3 с конца, и кроме первых двух;
  9. все символы первой половины в обратном порядке, кроме первого (при нечетной длине строки, средний символ не брать);
  10. скопировать срезом всю строку s в строку s2.
Допишите строчки в программе.
 
Примеры
№ Входные данные Выходные данные
1 Hallo, World! lo,
!
Hlo ol!
al,Wrd
Hallo, World
allo, World!
!dlroW ,ollaH
lroW ,oll
,olla
Hallo, World!
Фермер Джон упорядочил N своих коров (1 ≤ N ≤ 1000) каждая из которых имеет одну из двух пород Holsteins или Guernseys. Он зафиксировал этот порядок в виде строки из N символов, каждый из которых либо H, либо G соответственно. К несчастью, когда коровы прибыли на ферму и он снова их выстроил, они образовали строку, отличную от исходной.

Назовём эти две строки A и B, где A - исходная строка, которую он хотел увидеть, B - строка которая получилась по прибытию коров. ФД попросил помощи у кузена Бена.

После нескольких месяцев работы, Бен создал замечательную машину MCBF-3000, которая способна взять любую подстроку и поменять в ней все G на H, а все H на G. Теперь ФД хочет узнать минимальное количество применений этой машины, которые позволят превратить строку B в строку A. Помогите ФД.

Входные данные
Первая строка содержит N, а следующие две строки содержат строки A и B. Каждая из строк состоит только из символов H и G.
Выходные данные
Выведите минимальное количество раз применения машины MCBF-3000 для трансформации строки B в строку A.
Примеры
№ Входные данные Выходные данные
1
7
GHHHGHH
HHGGGHH
2
Дана последовательность из N целых чисел. Рассматриваются все её непрерывные подпоследовательности, начинающиеся с первого элемента последовательности. Найдите максимальную сумму подпоследовательности, кратную K, и количество таких подпоследовательностей.

Входные данные
В первой строке записаны два числа: количество чисел в последовательности N (1 <= N <= 106) и число K (1 <= K <= 100). Далее идет N строк, по одному целому числу в строке. Каждое число не превышает 10000.

Выходные данные
Выведите на экран два числа через пробел: максимальную сумму подпоследовательности, кратную K и количество таких подпоследовательностей.
 
Примеры
№ Входные данные Выходные данные
1 5 2
2
-2
2
-2
2
2 3
Ужасная болезнь поражает коров. Фермер Джон хочет их защитить.
Амбар ФД - это узкое длинное здание, содержащее N стойл в ряд (2≤N≤105). Некоторые из этих стойл уже заняты коровами, некоторые - свободны. Прочитав о необходимости социального дистанцирования, ФД хочет максимизировать D, где D, это расстояние между двумя ближайшими занятыми стойлами. Например, если стойла 3 и 8 ближайшие, которые заняты, тогда D=5.

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

Входные данные
Первая строка ввода содержит N. Следующая строка содержит строку длиной N из 0 и 1, описывающая последовательность стойл в амбаре. 0 означает пустое стойло, 1 означает занятое стойло. В строке имеется как минимум два нуля, что достаточно для размещения двух коров.
Выходные данные
Выведите наибольше значение D (наименьшее расстояние между двумя занятыми стойлами), которое ФД может получить добавлением двух новых коров оптимальным образом.
Примеры
№ Входные данные Выходные данные  
1 14
10001001000010
2 В этом примере ФД может добавить коров так: 10x010010x0010 где x показывает новых коров. В этом случае D=2. Невозможно разметить коров так, чтобы получить D больше.
Есть N частей некоторого исходного кода. Характеристики i-й части кода представлены M целыми числами Ai1, Ai2, ..., AiM . Вам даны целые числа B1, B2, ..., BM и C.
i-я часть кода правильно решает задачу тогда и только тогда, когда \( A_{i1}\cdot B_1 + A_{i2}\cdot B_2 + ...+ A_{iM}\cdot B_M +C>0\).
Среди N частей исходного кода найдите количество, которые правильно решают эту задачу.

Входные данные
В первой строке заданы три числа через пробел: N, M (1 <= N, M <= 20) и C (-100 <= C <= 100). Во второй строке задано  M чисел Bi (-100 <= Bi <= 100). Каждая из следующих N строк содержит M чисел Ai (-100 <= Aij <= 100, 1 <= i <= N, 1 <= j <= M).

Выходные данные
Выведите одно число - ответ на задачу.
 
Примеры
№ Входные данные Выходные данные
1 2 3 -10
1 2 3
3 2 1
1 2 2
1
2 5 2 -4
-2 5
100 41
100 40
-3 0
-6 -2
18 -13
2
3 3 3 0
100 -100 0
0 100 100
100 100 100
-100 100 100
0
Дано натуральное число N. Определите цифры числа, которые больше остальных цифр. Выведите две такие цифры в порядке невозрастания (вторая цифра меньше или равна первой).  

Входные данные 
На вход подается одно число N (10 <= N <= 109).

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

 

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

Сломанный цветной принтер, печатая цифры, закрашивает все замкнутые области в красный цвет.  Например, в цифрах 0, 4, 6, 9 одна замкнутая область. В цифре 8 - 2 замкнутых области.  В других цифрах нет замкнутых областей, которые закрашиваются. В принтере красной краски осталось на покраску h замкнутых областей.  Найдите минимальное неотрицательное число, напечатав которое в принтере закончится красная краска. Число не должно содержать ведущих нулей.  Если в принтере отсутствует красная краска, то он не может напечатать цифру с замкнутой областью.


Входные данные
На вход подается число h (0 <= h <= 510).

Выходные данные
Выведите число, которое необходимо напечатать.
 
Примеры
№ Входные данные Выходные данные
1 15 48888888
2 70 88888888888888888888888888888888888

Чтобы разнообразить игру «морской бой» Боря решил добавить в неё новый тип кораблей. Эти корабли состоят из двух прямоугольников. Первый прямоугольник имеет ширину w1 и высоту h1, а второй прямоугольник - w2 и h2 соответственно. Прямоугольники располагаются один над другим и выровнены по левому краю (см. рисунки примеров): введём на поле систему координат так, чтобы левая нижняя клеточка первого прямоугольника имела координаты (1,1). Тогда верхняя правая клеточка первого прямоугольника имеет координаты (w1,h1), левая нижняя клеточка второго прямоугольника имеет координаты (1,h1+1), а правая верхняя клеточка второго прямоугольника имеет координаты (w2,h1+h2).

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

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

 

Входные данные
В четырёх строках заданы четыре целых числа w1,h1,w2 и h2 (1<=w1,h1,w2,h2<=108) - ширина первого прямоугольника, высота первого прямоугольника, ширина второго прямоугольника и высота второго прямоугольника, соответственно.


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


Примечание

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

Во втором примере поле выглядит так:

 
Примеры
№ Входные данные Выходные данные
1 2
1
2
1
12
2 2
2
1
2
16
Аня — страстный любитель ювелирных изделий. Ее коллекция насчитывает множество бриллиантов, изумрудов и алмазов.

...Срочная новость! Бесценный змеиный рубин Клеопатры был украден!

Три дня назад мир потрясло сенсационное известие: исследовательская экспедиция обнаружила в одном из храмов, построенных во времена великой египетской императрицы Клеопатры, потайную комнату. В ней кроме бронзовой статуи императрицы обнаружилась поразительной красоты диадема, ранее считавшаяся бесследно утерянной! Ученые сообщили, что диадема увенчана алым a-каратным рубином в форме змеиной головы. Однако буквально пару часов назад поступила новость, что бесценное украшение было изувечено: кто-то пробрался в камеру хранения диадемы и вырезал из нее рубин! Полиция устанавливает круг подозреваемых...


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

Купив все N камней, Глеб тут же провел несколько пробных измерений, взвесив некоторые наборы из них, и отправил результаты Ане по электронной почте. Тем временем она проконсультировалась с известным исследователем старины Андрэ Шесто-Мерта по поводу украденной драгоценности и узнала, что по всем имеющимся историческим источникам рубин весил не a карат, как утверждали журналисты, а b карат!

Зная результаты взвешиваний Глеба, и учитывая, что все поддельные камни весят a карат, и только настоящий змеиный рубин может весить b карат, определите, какие из купленных камней могут на самом деле являться потерянной реликвией великой императрицы прошлого.

Входные данные
В первой строке находятся четыре целых числа N, a, b и K (1 ≤ N ≤ 200, 1 ≤ a, b ≤ 1 000 000, a ≠ b, 1 ≤ K ≤ 1 000).

Далее идут K строк, описывающих взвешивания, проведенные Глебом.

Первое число в i-ом описании — wi (1 ≤ wi ≤ 200 000 000), суммарный вес группы камней, участвовавших в i-ом взвешивании.

Второе число — mi (1 ≤ mi ≤ N) — количество камней, участвовавших в i-ом взвешивании.

Далее следуют mi целых чисел, упорядоченных по возрастанию, — номера камней, участвовавших в i-ом взвешивании.

Выходные данные
Если среди купленных Глебом камней змеиного рубина точно нет, выведите строку "Fail" (без кавычек).

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

Если же Глеб в некоторый момент ошибся в расчетах, и присланная им информация о взвешиваниях не может соответствовать действительности, выведите строку "Impossible" (без кавычек).
Примеры
№ Входные данные Выходные данные
1 4 15 17 2
30 2 1 3
47 3 2 3 4
2
2 4
2 3 15 17 3
30 2 1 2
30 2 2 3
47 3 1 2 3
Impossible
3 2 1 2 2
1 1 2
1 1 1
Fail

Примечание
В первом тесте из первого взвешивания мы делаем вывод, что первый и третий камни гарантированно поддельные. С другой стороны, среди второго, третьего и четвёртого камня точно есть настоящий. Значит настоящим может оказаться второй или четвёртый камень.

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

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

Миша очень любит рассматривать сумму цифр числа. Для того чтобы привести в порядок число A, он сначала записывает само число. Потом он пишет сумму цифр этого числа. Затем — сумму цифр суммы цифр и так далее, до тех пор, пока очередное число не станет однозначным. Он считает, что результатом приведения в порядок числа A является сумма всех выписанных чисел, включая само число A.

Миша настолько любит этот процесс, что он даже заменяет ему счёт овец, когда долго не получается заснуть. Он помнит, что вчера ночью, когда он в уме привёл в порядок число A, у него получилось число B. Но вот беда — он не помнит, какое именно он взял число A! Помогите ему в отыскании этого числа.

Входные данные
На ввод подаётся единственное целое число B (1 ≤ B ≤ 109 )

Выходные данные
Если существует такое число A, что после приведения его в порядок, получается B, то выведите любое такое число. Если же Миша где-то ошибся в расчётах и такого числа не существует, то выведите -1.

 
Примеры
№ Входные данные Выходные данные
1 42 29
2 20 -1
В некотором мире сейчас 31 декабря и все веселье только начинается. Снежик Сугробович слепил N больших снежков и расположил их в ряд слева направо. На каждом i-м снежке, если считать слева (1 <= i <= N), он написал целое число ai. Он предлагает вам сыграть в игру. Снежик Сугробович разрешил сломать не более N − 1 снежков по вашему выбору. 

Допустим, осталось K снежков. Снежик Сугробович будет удовлетворен и подарит вам хороший подарок, если для каждого целого числа i (1<=i<=K) на i-м снежке, если считать слева оставшиеся снежки, будет написано целое число i.
Найдите минимальное количество снежков, которое вам нужно сломать, чтобы получить подарок. Если не получится, то выведите -1.

Входные данные
В первой строке программа получает на вход целое число N (1 <= N <= 200000). Во второй строке - N натуральных чисел ai (1<=ai<=N). 

Выходные данные
Выведите минимальное количество снежков, которые нужно сломать, чтобы получить подарок, или выведите -1, если это невозможно сделать.
 
Примеры
№ Входные данные Выходные данные Пояснение
1 3
2 1 2
1 Сломайте первый снежок, числа на остальных снежках будут удовлетворять условию Снежика Сугробовича
2 3
2 2 2
-1  
3 10
3 1 4 1 5 9 2 6 5 3
7  
4 1
1
0  
На пути к спасению городка Энджел Гроув черный рейнджер Зак Тейлор столкнулся с очередным препятствием. Рейнджер оказался на инопланетном космическом корабле в окружении врагов, и теперь, чтобы освободиться, ему необходимо уничтожить всех врагов в определенном порядке.
Каждый из n врагов обладает силой fi. Однако среди них имеется главный враг — босс, чья сила равняется сумме сил всех остальных врагов. Так как уничтожение босса требует полной концентрации и сосредоточенности, Зак сможет справиться с ним только после того, как уничтожит всех остальных врагов.
В запасе у рейнджера мало времени, так что он не успевает понять, кто босс. Ему необходима ваша помощь. Восстановите порядок, в котором Заку Тейлору необходимо уничтожать врагов, чтобы выбраться на свободу.

Входные данные
В первой строке находится натуральное число n — количество врагов (3 ≤ n ≤ 105).
Во второй строке находятся n целых чисел fi, задающих силу каждого врага (-109 ≤ fi ≤ 109).
Силы врагов заданы в случайном порядке.

Выходные данные
В единственной строке выведите числа fi в порядке, в котором соответствующие им враги будут уничтожаться рейнджером. Если существует несколько порядков, выведите любой.
Гарантируется, что решение всегда существует, а также существует ровно один враг, который может быть боссом.
 
Примеры
№ Входные данные Выходные данные
1 3
2 5 3
2 3 5
2 5
-1 1 0 1 -1
-1 1 1 -1 0
В данной задаче вам предлагается автоматизировать оценку результата экспресс теста.
Вам дана двухцветная картинка размером 10×20. Для обозначения цветов используются символы «#» и «.». Тест
считается отрицательным, если на картинке изображена одна вертикальная полоска и положительным, если три. В любом
другом случае тест считается испорченным.
Полоской будем считать область картинки 10×k, состоящую из символов «#», где k может быть произвольным. При этом
все соседние клетки с этой областью должны быть «.». Полоска может находиться на границе картинки.

Входные данные
В первой строке входных данных задано число t - число тестов (1 ≤ t ≤ 30). В следующих t⋅10+(t−1) строках заданы картинки
тестов. Соседние картинки разделены пустыми строками. После последней картинки, пустой строки нет.
Каждая картинка состоит из 10 строк по 20 символов, каждый из которых либо «#», либо «.».

Выходные данные
Для каждой картинки выведите результат теста в отдельной строке:
Negative - если тест отрицательный;
Positive - если тест положительный;
Incorrect - если тест испорчен.

 Примеры
№ Входные данные Выходные данные
1
4
.........##.........
.........##.........
.........##.........
.........##.........
.........##.........
.........##.........
.........##.........
.........##.........
.........##.........
.........##.........

.........##.........
.........##.........
.........##.........
.........#..........
.........##.........
.........##.........
.........##.........
.........##.........
.........##.........
.........##.........

..#.......#.....###.
..#.......#.....###.
..#.......#.....###.
..#.......#.....###.
..#.......#.....###.
..#.......#.....###.
..#.......#.....###.
..#.......#.....###.
..#.......#.....###.
..#.......#.....###.

..#.......#.....###.
..#.......#.....###.
..##......#.....###.
..##......#.....###.
..##......#.....###.
..##......#.....###.
..#.......#.....###.
..#.......#.....###.
..##......#.....###.
..#.......#.....###.
Negative
Incorrect
Positive
Incorrect

Генеалогическое древо — это графическая схема, описывающая родственные связи в пределах одной семьи. Начало такого дерева — это один предок (родоначальник) или супруги и далее цепочка строится вниз. Сопоставим с каждым элементов дерева целое неотрицательное число, называемое высотой.  У самого верхнего предка высота 0, у каждого следующего потомка высота на 1 больше, чем у его родителя. 

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


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

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

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

Пример
№ Входные данные Выходные данные
1
9
Alexei Peter_I
Anna Peter_I
Elizabeth Peter_I
Peter_II Alexei
Peter_III Anna
Paul_I Peter_III
Alexander_I Paul_I
Nicholaus_I Paul_I
Alexander_I 4
Alexei 1
Anna 1
Elizabeth 1
Nicholaus_I 4
Paul_I 3
Peter_I 0
Peter_II 2
Peter_III 2
У игрока в космической стрелялке есть очень мощная лазерная пушка. Но она неподвижна и может стрелять только в одном направлении. Игрок может расставить на игровом поле двусторонние зеркала, меняющие ход луча, чтобы поражать врагов. Введём декартову систему координат с центром, где расположена пушка, то есть пушка имеет координаты (0; 0). Пушка стреляет в направлении точки (1; 1). Игрок может поставить зеркала в точках с целочисленными координатами. Зеркала могут быть горизонтальными или вертикальными, попадание луча в зеркало меняет траекторию луча по законам отражения света. Некоторые возможные варианты отражения луча от зеркала изображены на рисунке.

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

Входные данные
Программа получает на вход два целых числа X и Y , не превосходящих по модулю 10000, записанные в разных строках — координаты цели. Точка (X; Y) не совпадает с началом координат.

Выходные данные
Программа должна вывести в первой строке число N — необходимое количество зеркал. Следующие N строк должны содержать информацию о каждом зеркале. В i-й строке должны быть записаны через пробелы два целых числа xi и yi и один символ ti , обозначающие координаты (xi ; yi) точки, в которых установлено i-е зеркало, и тип этого зеркала ti . Если ti является символом «V», то i-е зеркало размещено вертикально, если же ti является символом «H», то зеркало размещено горизонтально. Например, строка «-2 5 H» обозначает горизонтальное зеркало в точке (−2; 5). Зеркала можно выводить в любом порядке. Зеркало нельзя размещать в точке (0; 0), также нельзя размещать два зеркала в одной точке. Значения xi и yi не должны по модулю превосходить 100 000. Также, разумеется, нельзя допустить, чтобы отражённый луч попал в пушку. Если вариантов ответа несколько, выведите любой из них. Если поразить цель в соответствии с условиями задачи невозможно, программа должна вывести одно число «-1». Если для поражения цели зеркала не нужны, программа должна вывести одно число «0»
 
Примеры
№ Входные данные Выходные данные Пояснение
1 5
1
1
3 3 H
Поделиться
Класснуть