Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 2656 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 517 518 519 520 521 522 523 >> Отображать по:
ограничение по времени на тест
5.0 second;
ограничение по памяти на тест
512 megabytes

Скажем, что последовательность строк t 1 , ..., t k является путешествием длины k , если для всех i > 1 t i является подстрокой t i - 1 строго меньшей длины. Например, { ab , b } является путешествием, а { ab , c } или { a , a } — нет.

Определим путешествие по строке s как путешествие t 1 , ..., t k , все строки которого могут быть вложены в s так, чтобы существовали (возможно, пустые) строки u 1 , ..., u k + 1 , такие, что s = u 1 t 1 u 2 t 2 ... u k t k u k + 1 . К примеру, { ab , b } является путешествием по строке для abb , но не для bab , так как соответствующие подстроки расположены справа налево.

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

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

В первой строке задано целое число n ( 1 ≤ n ≤ 500 000 ) — длина строки s .

Во второй строке содержится строка s , состоящая из n строчных английских букв.

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

Выведите одно число — наибольшую длину путешествия по строке s .

Примечание

В первом примере путешествием по строке наибольшей длины является { abcd , bc , c } .

Во втором примере подходящим вариантом будет { bb , b } .

Примеры
Входные данные
7
abcdbcc
Выходные данные
3
Входные данные
4
bbcb
Выходные данные
2
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Олег пришел посмотреть на зеркальный лабиринт. Зеркальный лабиринт представляет собой комнату \(n\) на \(n\), у которой каждая клетка или пуста, или содержит зеркало, соединяющее диагональные концы соответствующей клетки. Зеркала в таком лабиринте обладают почти идеальной способностью отражать свет, что создаёт интересные визуальные ощущения и способствует потери ориентации в пространстве.

Олег по натуре очень любопытен, поэтому он решил установить на южной стороне лабиринта \(n\) лазеров, направленных внутрь лабиринта. На северной стороне лабиринта Олег установил \(n\) приёмников, тоже направленных внутрь лабиринта. Пронумеруем лазеры и приёмники с запада на восток от \(1\) до \(n\). Для каждого лазера известен номер приёмника, в который он должен попасть. Так как в один приёмник не могут попасть одновременно два лазера, то эти номера образуют перестановку — каждый из номеров приёмников встречается ровно один раз.

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

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

Первая строка содержит одно целое число \(n\) (\(1 \le n \le 1000\)) — размеры лабиринта.

Во второй строке дана перестановка из \(n\) целых чисел \(a_i\) (\(1 \le a_i \le n\)), где \(a_i\) задаёт номер приёмника, в который должен попасть \(i\)-й лазер.

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

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

В следующих \(n\) строчках длины \(n\) выведите расстановку зеркал, приводящую к такому количеству попавших лазеров. Если соответствующая клетка пуста, то выведите « . », иначе выведите « / » или « \ », в зависимости от ориентации зеркала.

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

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

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

Примечание

Картинка иллюстрирует расстановку зеркал из первого примера.

Примеры
Входные данные
4
4 1 3 2
Выходные данные
3
.\..
\\..
/../
...\
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Назовём палиндромом непустую строку, которая читается одинаково справа налево и слева направо. Например, « abcba », « a » и « abba » являются палиндромами, а « abab » и « xy » не являются.

Назовём подстрокой строки строку, полученную отбрасыванием некоторого (возможно, нулевого) количества символов с начала и с конца строки. Например, « abc », « ab » и « c » являются подстроками строки « abc », а « ac » и « d » не являются.

Назовем палиндромностью строки количество её подстрок, которые являются палиндромами. Например, палиндромность строки « aaa » равна \(6\), так как все её подстроки являются палиндромами, а палиндромность строки « abc » равна \(3\), так как только подстроки длины \(1\) являются палиндромами.

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

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

В первой строке задано целое число \(n\) (\(1 \le n \le 100\,000\)) — длина строки \(s\).

Во второй строке задана строка \(s\), состоящая из \(n\) строчных букв латинского алфавита.

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

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

Если подходящих строк несколько, выведите любую.

Примечание

В первом примере у строки « ololo » есть \(9\) подстрок-палиндромов: « o », « l », « o », « l », « o », « olo », « lol », « olo », « ololo ». Обратите внимание, что некоторые подстроки совпадают, но учитываются несколько раз.

Во втором примере палиндромность строки « abccbaghghghgdfd » равна \(29\).

Примеры
Входные данные
5
oolol
Выходные данные
ololo
Входные данные
16
gagadbcgghhchbdf
Выходные данные
abccbaghghghgdfd
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
512 megabytes

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

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

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

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

Первая строка содержит два целых числа n , m ( 1 ≤ n , m ≤ 2000 ) — количество строк и столбцов в лабиринте, соответственно.

Вторая строка содержит два целых числа r , c ( 1 ≤ r n , 1 ≤ c m ) — номер строки и столбца, на пересечении которых расположена стартовая клетка.

Третья строка содержит два целых числа x , y ( 0 ≤ x , y ≤ 10 9 ) — максимальное количество перемещений влево и вправо, соответственно.

Следующие n строк содержат описание лабиринта. Каждая из этих строк имеет длину m и состоит только из символов ' . ' и ' * '. В i -й строке j -й символ соответствует клетке лабиринта с номерами строки и столбца i и j , соответственно. Символ ' . ' соответствует свободной клетке лабиринта, а символ ' * ' — клетке с препятствием.

Гарантируется, что стартовая клетка не занята препятствием.

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

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

Примечание

Клетки, достижимые в соответствующем примере, отмечены ' + '.

Первый пример


+++..
+***.
+++**
*+++.

Второй пример


.++.
.+*.
.++.
.++.
Примеры
Входные данные
4 5
3 2
1 2
.....
.***.
...**
*....
Выходные данные
10
Входные данные
4 4
2 2
0 1
....
..*.
....
....
Выходные данные
7
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

На детском празднике дети водили хороводы. Как только музыка закончила играть, дети всё ещё стояли в кругу. Тут Лена вспомнила, что родители дали ей коробку с \(k\) конфетками «Wilky May». Лена не жадина, поэтому она решила раздать все свои конфетки друзьям из хоровода. Лена знает, что некоторые её друзья сладкоежки, а некоторые нет. Сладкоежки берут из коробки две конфетки, если в коробке есть хотя бы две конфетки, а иначе берут одну. Остальные друзья Лены всегда берут ровно одну конфетку из коробки.

Чтобы начать раздавать конфетки, Лена вышла из хоровода, после чего в хороводе остались \(n\) ее друзей. Чтобы раздавать конфетки было проще, Лена присвоила каждому другу в хороводе номер в порядке по часовой стрелке, начиная с её лучшего друга Ромы, который получил номер \(1\).

Лена дала коробку другу, который получил номер \(l\), после чего каждый друг Лены, начиная с друга с номером \(l\), брал конфетки из коробки и передавал коробку следующему в порядке по часовой стрелке другу. После того, как друг с номером \(r\) взял конфетки, в коробке конфеток не осталось. Обратите внимание, что возможно, что некоторые друзья Лены брали конфетки из коробки несколько раз, то есть коробка могла пройти несколько полных кругов по хороводу.

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

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

В единственной строке задаются четыре целых числа \(n\), \(l\), \(r\), \(k\) (\(1 \le n, k \le 10^{11}\), \(1 \le l, r \le n\)) — количество детей в хороводе, номер друга, которому Лена отдала коробку конфет, номер друга, который взял последнюю конфетку, и количество конфет в коробке, соответственно.

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

Выведите одно целое число — максимально возможное количество сладкоежек среди друзей Лены или « -1 » (без кавычек), если Лена ошиблась в своих наблюдениях.

Примечание

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

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

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

В четвёртом примере Лена ошиблась и такой ситуации быть не могло.

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

Страница: << 517 518 519 520 521 522 523 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест