Темы --> Информатика --> Язык программирования
    Процедуры и функции(96 задач)
    Массивы(232 задач)
    Типы данных(356 задач)
    Циклы(177 задач)
    Условный оператор (if)(164 задач)
    Python(260 задач)
    Standard Template Library(2 задач)
---> 952 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 77 78 79 80 81 82 83 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

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

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

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

Первая строка содержит текущую последовательность цифр, вторая строка — последовательность, которую требуется получить. Гарантируется, что обе последовательности не пустые, имеют одинаковую длину, не превосходящую 100 000, и состоят только из нулей и единиц. Цифры в строках записаны подряд (без пробелов).

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

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

Примеры
Входные данные
1101
1011
Выходные данные
2
Входные данные
0000
1111
Выходные данные
4
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

 Инспекция составила отчет, в котором для каждого вертикального ряда блоков указана его нынешняя высота. Военное министерство сразу же заинтересовалось вопросом: где находится самый уязвимый участок стены? Участок  стены является уязвимым, если он целиком состоит из подряд идущих рядов, высота которых меньше 5 и ограничен с обеих сторон либо границами стены, либо рядами блоков максимальной высоты.

 
Например, у стены на рисунке два уязвимых участка (второй и третий ряд; пятый и шестой ряды, считая слева). Длина стены на рисунке равна 6.

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

Для стены на рисунке второй участок более уязвимый чем первый.

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

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

Cначала вводится число N – длина стены (натуральное, не превышает 1000), затем следует N целых чисел в диапазоне от 0 до 5 – высота соответствующего вертикального ряда. Гарантируется, что на стене есть хотя бы один уязвимый участок.

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

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

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

Выходные данные
9 10 8
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

В некотором интернет - магазине действует N накопительных скидок. Когда сумма, уплаченная каким-то клиентом за его предыдущие заказы превысит x1, начинает действовать скидка a1 (это означает что за последующие покупки клиент платит на a1 процентов меньше). Затем, когда суммарная стоимость покупок превысит x2 начинает действовать скидка a2. И так далее. Когда суммарная стоимость покупок превысит xn, то начинает действовать скидка an. Известно, что a1<a2<…<an.

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

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

Сначала вводится число N (натуральное, не превышает 10) – общее количество скидок. Затем вводится N пар чисел: величина скидки ai (натуральное, не превышает 100) и сумма, которую надо превысить чтобы получить такую скидку xi (натуральное, не превышает 100000). Далее вводится число K – количество товаров, которые хочет приобрести покупатель (натуральное, не более 100). Затем следует K чисел – цена каждого товара (натуральное, не более 1000). Гарантируется, что каждая следующая скидка дается после большей суммы, чем предыдущая, также гарантируется что величина каждой следующей скидки больше предыдущей. Гарантируется, что все цены в интернет-магазине кратны 100.

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

Выведите единственное число – сколько денег потратит покупатель при заданном порядке покупок.

Пример:

Исходные данные

Результат

2

2 10

4 100

2

100

100

198

(обратите внимание, что скидка начисляется только после превышения суммы, поэтому после первой покупки скидка равна не 4, а 2%)

3

2 10

4 20

8 30

1

1000

1000

(скидка начисляется только после совершения покупки)

 

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

В одном карточном клубе состоит N джентльменов. Иногда азарт некоторых из них берет верх над благоразумием, и кто-то проигрывает больше денег, чем у него есть с собой. В этом случае проигравший обычно берет в долг у кого-то из посетителей клуба, чтобы расплатиться с партнерами по игре. Чтобы начать новый год "с чистого листа", джентльмены решили собраться в клубе и оплатить все долговые расписки, которые накопились у них друг к другу. Однако выяснилось, что иногда одни и те же джентльмены в разные дни выступали как в роли должников, так и в роли кредиторов. Поскольку истинные джентльмены считают мелочный подсчет денег ниже своего достоинства, то расчетами придется заняться вам.

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

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

Cначала вводится число N – количество джентльменов (натуральное, не превышает 100, не менее 2), затем вводится число K – количество долговых расписок (натуральное, не превышает 10000), после этого следует K троек чисел: номер джентльмена взявшего в долг, номер джентльмена давшего деньги и сумма. Номера джентльменов в расписках – натуральные числа, не превышающие N. Сумма - натуральное число, не превышает 100. Гарантируется, что ни один джентльмен не брал в долг сам у себя.

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

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

Примеры
Входные данные
2 3
1 2 10
1 2 20
1 2 20

Выходные данные
-50 50 
Входные данные
3 1
3 1 100
Выходные данные
100 0 -100 

Некоторый город построен на квадратном участке земли. Более того, территория города поделена на одинаковые квадратные участки, на каждом из которых построено какое-то здание. Здания пронумерованы числами от 1 до N2, сначала нумеруются подряд здания одной "улицы", затем другой и так далее. Здания могут быть разной высоты.

Пример карты города для N=3 приведен на рисунке. В скобках сначала указан номер здания, затем его высота.

(1; 10)

(2; 6)

(3; 2)

(4; 5)

(5; 4)

(6; 7)

(7; 3)

(8; 8)

(9; 1)

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

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

Cначала вводится число N – длина стороны города (натуральное, не превышает 20). Затем вводится N2 чисел – высоты зданий; число номер i показывает высоту i-го здания; высоты – натуральные числа, не превосходят 20.

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

Выведите панораму города, снятую со стороны, указанной на рисунке стрелкой, в следующем формате: N столбцов чисел (по количеству рядов зданий). Каждый столбец состоит из 20 чисел, которые описывают фотографию ряда зданий сверху вниз. Число равно номеру того здания, которое видно на панораме на данной высоте. Если на данной высоте нет здания, то выводится 0.

 

Для примера, показанного на рисунке вывод будет выглядеть так:

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

1

8

0

1

8

6

1

8

6

4

8

6

4

8

6

7

8

6

7

8

6

7

8

9

Пояснения: при съемке первого ряда зданий высота самого высокого из них равна 10. Поэтому над ним ничего нет (десять нулей вверху первого столбца). Затем, здание номер 4 перекрывает нижнюю часть здания номер 1, поэтому у здания 1 видно только верхние 5 этажей (следующие пять единиц). Затем здание 7 перекрывает вид на нижние 3 этажа здания 4. Поэтому от здания 4 видны только два верхних этажа.

Второй столбец: при съемке с указанной точки здание 8 перекроет вид на все остальные здания этого ряда (потому что оно выше их), таким образом видно только это здание, а над ним ничего нет (12 нулей).

Третий столбец: самое высокое здание в этом ряду – здание 6, его высота равна 7. Поэтому вверху столбца идет 13 нулей.  Здание 6 полностью загораживает собой здание 3. Вид на нижний этаж здания 6 загораживает здание 9, которое расположено ближе к точке съемки.

Комментарий к примеру тестов

Нумерация зданий будет такой:
1 2
3 4

Примеры
Входные данные
2
15 8
4 18
Выходные данные
0 0 
0 0 
0 4 
0 4 
0 4 
1 4 
1 4 
1 4 
1 4 
1 4 
1 4 
1 4 
1 4 
1 4 
1 4 
1 4 
3 4 
3 4 
3 4 
3 4 

Страница: << 77 78 79 80 81 82 83 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест