Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
Дан ориентированный полный граф, рёбрам которого приписаны некоторые веса (длины). Веса могут быть и положительные, и отрицательные, и нулевые. Нас интересует минимум длин всех возможных путей между всеми парами различных вершин этого графа. Нужно будет выяснить, существует ли этот минимум, и, если существует, вычислить его. (Минимума не существует в том случае, если в графе можно найти путь отрицательной длины, сколь угодно большой по модулю).
В первой строке задано число вершин N≤50. Далее идёт матрица смежности графа, то есть N строк, в каждой из которых записано N чисел. j-ое число в i-ой строке матрицы смежности задает длину ребра, ведущего из i-й вершину в j-ую. Длины могут принимать любые значения от -1000000 до 1000000. Гарантируется, что на главной диагонали матрицы стоят нули.
Выведите одно число – искомый минимум. Если его не существует, выведите -1.
3 0 42 18468 6335 0 26501 19170 15725 0
42
3 0 -7 3 -2 0 10 2 215 0
-1
Дан ориентированный граф. Требуется определить, есть ли в нем цикл.
В первой строке вводится число вершин N≤ 50. Далее в N строках следуют по N чисел, каждое из которых – 0 или 1. j-ое число в i-ой строке равно 1 тогда и только тогда, когда существует ребро, идущее из i-ой вершины в j-ую. Гарантируется, что на диагонали матрицы будут стоять нули.
Выведите 0, если в заданном графе цикла нет, и 1, если он есть.
3 0 1 0 0 0 1 0 0 0
0
3 0 1 0 0 0 1 1 0 0
1
Максимальное время работы на одном тесте: | 0.2 секунды |
Найти все вхождения строки T в строку S.
Первые две строки входных данных содержат строки S и T, соответственно. Длины строк больше 0 и меньше 50000, строки содержат только строчные латинские буквы.
Выведите номера символов, начиная с которых строка T входит в строку S, в порядке возрастания.
ababbababa aba
0 5 7
Максимальное время работы на одном тесте: | 2 секунды |
Мальчик Кирилл написал однажды на листе бумаги строчку, состоящую из больших и маленьких латинских букв, а после этого ушел играть в футбол. Когда он вернулся, то обнаружил, что его друг Дима написал под его строкой еще одну строчку такой же длины. Дима утверждает, что свою строчку он получил циклическим сдвигом строки Кирилла на несколько шагов вправо (циклический сдвиг строки abcde на 2 позиции вправо даст строку deabc). Однако Дима известен тем, что может случайно ошибиться в большом количестве вычислений, поэтому Кирилл в растерянности – верить ли Диме? Помогите ему! По данным строкам выведите минимальный возможный размер сдвига или -1, если Дима ошибся.
Первые две строки входных данных содержат строки Кирилла и Димы, соответственно. Длины строк одинаковы, не превышают 10000 и не равны 0.
Выведите единственное число – ответ на вопрос задачи.
zabcd abcdz
4
Максимальное время работы на одном тесте: | 1 секунда, для Python - 2 секунды |
Строка S была записана много раз подряд, после чего из получившейся строки взяли подстроку и дали вам. Ваша задача определить минимально возможную длину исходной строки S.
На вход программы поступает строка, которая содержит только латинские буквы, длина строки не превышает 100000 символов.
Требуется вывести одно число – ответ на вопрос задачи.
abaabaabaa
3