Темы --> Информатика --> Язык программирования
    Процедуры и функции(96 задач)
    Массивы(232 задач)
    Типы данных(356 задач)
    Циклы(177 задач)
    Условный оператор (if)(164 задач)
    Python(260 задач)
    Standard Template Library(2 задач)
---> 145 задач <---
Страница: << 23 24 25 26 27 28 29 Отображать по:
#113572
  
Темы: [Строки]
Источники: [ Личные олимпиады, COCI, COCI 2015-2016, Раунд 4, Трезвый Доминик ]
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

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

Полицейский: Давайте начнём с чего-то простого. Какова асимптотика сортировки пузырьком?

Доминик: О, это просто. O ( n 2 ) .

Полицейский: Скажите английский алфавит наоборот.

Доминик: Легко, zyxwvutsrqponmlkjihgfedcba.

Полицейский: Вы просто запомнили это. Представьте, что строчные буквы латинского алфавита записаны по кругу по часовой стрелке. Начинайте с буквы 'a' и называйте все буквы подряд. После каждой сказанной буквы я могу приказать теперь называть в обратном порядке, спросить сколько раз была названа какая-то буква или ничего не делать. Приступайте.

Доминик: Хм... a, b, c...

Возможно, Доминик не настолько трезв, чтобы решить эту задачу. Помогите ему.

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

Первая строка содержит одно целое число Q ( 1 ≤ Q ≤ 10 5 ) – количество приказов полицейского. Каждая из последующих Q строк содержит один из приказов в формате "SMJER n" или "UPIT n x". Приказ первого типа обозначает, что после n -й сказанной буквы требуется поменять направление. Приказ второго типа обозначает, что Доминик должен сказать, сколько раз он произнес букву x после n сказанных букв.

Во всех запросах 1 ≤ n ≤ 10 9 , а x – строчные латинские буквы. В запросах n идут в строго возрастающем порядке.

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

Для каждого запроса вида "UPIT n x", выведите ответ на этот запрос, каждый в отдельной строке, в том же порядке, что и в вводе.

Система оценки

40 баллов: n ≤ 1000

60 баллов: n ≤ 10 5

100 баллов: n ≤ 10 9

Примечание

В первом примере Доминик говорит a, b, c, d, c, b, a, z, y, x.

Во втором примере Доминик говорит a, z, a, z, y, x, w.

Примеры
Входные данные
5
UPIT 1 b
UPIT 3 b
SMJER 4
UPIT 7 a
UPIT 10 z
Выходные данные
0
1
2
1
Входные данные
5
SMJER 1
SMJER 2
SMJER 3
UPIT 5 a
UPIT 7 w
Выходные данные
2
1
Входные данные
4
UPIT 100 a
UPIT 200 c
UPIT 300 a
UPIT 400 b
Выходные данные
4
8
12
16
#113573
  
Источники: [ Личные олимпиады, COCI, COCI 2015-2016, Раунд 4, Миссия джедая Ивана ]
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Юный джедай Иван был заброшен на Звезду Смерти с заданием уничтожить её. Для того, чтобы уничтожить Звезду Смерти, ему требуется массив неотрицательных целых чисел a i длины N . К сожалению, у Ивана нет этого массива, но есть секретный документ с требованиями к этому массиву, который ему передал его старый друг Дарт Вейдер.

В этом документе содержится квадратная матрица m размера N , где элемент в i -й строке в j -м столбце равен побитовому "И" чисел a i и a j . Для повышения безопасности главная диагональ матрицы была уничтожена и вместо чисел на ней были записаны нули. Помогите Ивану восстановить массив a и выполнить свою миссию.

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

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

В первой строке содержится число N ( 1 ≤ N ≤ 1000 ) – размер матрицы. Каждая из последующих N строк содержит по N целых чисел m ij ( 0 ≤ m ij ≤ 9 ) – элементы матрицы.

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

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

Примечание

40 баллов — (1 ≤ N ≤ 5) .

100 баллов — (1 ≤ N ≤ 1 000) .

Примеры
Входные данные
3
0 1 1
1 0 1
1 1 0
Выходные данные
1 1 1 
Входные данные
5
0 0 1 1 1
0 0 2 0 2
1 2 0 1 3
1 0 1 0 1
1 2 3 1 0
Выходные данные
1 2 3 1 3 
#113578
  
Темы: [Строки]
Источники: [ Личные олимпиады, COCI, COCI 2015-2016, Раунд 5, Перо и страстная любовь ]
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

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

Мультиграмма – это слово, которое состоит из конкатенации двух и более анаграмм. Первая из этих анаграмм называется корнем мультиграммы. Например, слово bbabab – мультиграмма с корнем bba, потому что она состоит из анаграмм bba и bab.

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

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

Единственная строка содержит слово, состоящее не более, чем из 10 5 строчных букв латинского алфавита.

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

Если данное слово – мультиграмма, выведите кратчайший из её корней. Иначе выведите -1.

Примечание

Решения, работающие когда длина строки не превосходит 500, будут оцениваться в 20 баллов.

Решения, работающие когда длина строки не превосходит 5000, будут оцениваться в 40 баллов.

Примеры
Входные данные
aaaa
Выходные данные
a
Входные данные
ab
Выходные данные
-1
Входные данные
bbabab
Выходные данные
bba
#113583
  
Источники: [ Личные олимпиады, COCI, COCI 2015-2016, Раунд 6, Мирко и азартные игры ]
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

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

Выигрышные очки карт (если масть козырная / если масть не козырная):

А : 11 / 11

K : 4 / 4

Q : 3 / 3

J : 20 / 2

T : 10 / 10

9 : 14 / 0

8 : 0 / 0

7 : 0 / 0

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

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

Первая строка содержит одно целое число N ( 1 ≤ N ≤ 100 ) и один символ B ( S , H , D или C ) - козырная масть в игре.

Каждая из следующих 4 N строк содержит описание карты K i , состоящее из двух символов: первый - символ карты ( A , K , Q , J , T , 9 , 8 , 7 ), второй - масть карты ( S , H , D или C ).

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

Выведите одно целое число - количество выигранных очков.

Примеры
Входные данные
2 S
TH
9C
KS
QS
JS
TD
AD
JH
Выходные данные
60
Входные данные
4 H
AH
KH
QH
JH
TH
9H
8H
7H
AS
KS
QS
JS
TS
9S
8S
7S
Выходные данные
92
#113584
  
Темы: [Массивы]
Источники: [ Личные олимпиады, COCI, COCI 2015-2016, Раунд 6, Опасность ожирения ]
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

У него есть возможность есть грибы, которые он находит во время прогулки. Все грибы, которые ему встречаются, различны, и он собирается съесть как можно больше различных грибов, но не превысить свою норму. Мислав действует так: он идет по лесу и в любой момент может начать действовать по следующему алгоритму. Если он может съесть гриб и не переесть, то он ест его, иначе – проходит мимо.

Вам дан массив из N весов грибов в том порядке, в котором Мислав находит их. Определите, сколько грибов он может съесть.

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

Первая строка содержит два целых числа N и C ( 1 ≤ N ≤ 1000 , 1 ≤ C ≤ 10 6 ).

Вторая строка содержит N целых чисел w i ( 1 ≤ w i ≤ 1000 ), обозначающих веса грибов.

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

Выведите одно число – максимальное количество грибов, которое может съесть Мислав, чтобы не ожиреть.

Примечание

В первом примере если он начнет есть с первого гриба, то он съест 3 гриба (3, 1, 1). Если он начнет со второго, то он сможет съесть 4 гриба (1, 2, 1, 1).

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

Страница: << 23 24 25 26 27 28 29 Отображать по:
Выбрано
:
Отменить
|
Добавить в контест