решение задач. Разработка с нуля. B. Быстрый поиск подстроки в строке ограничение по времени на тест2 секунды ограничение по памяти на тест256 мегабайт вводстандартный ввод выводстандартный вывод Даны строки p и t. Требуется найти все вхождения строки p в строку t в качестве подстроки. Входные данные Первая строка входного файла содержит p, вторая — t (1 <= |p|, |t| <= 106). Строки состоят из букв латинского алфавита. Выходные данные В первой строке выведите количество вхождений строки p в строку t. Во второй строке выведите в возрастающем порядке номера символов строки t, с которых начинаются вхождения p. Символы нумеруются с единицы. C. Компоненты связности ограничение по времени на тест2 секунды ограничение по памяти на тест256 мегабайт вводстандартный ввод выводстандартный вывод Дан неориентированный граф. Требуется выделить компоненты связности в нем. Входные данные Первая строка входного файла содержит два натуральных числа n и m — количество вершин и ребер графа соответственно (1<=n<=100000, 0<=m<=200000). Следующие m строк содержат описание ребер по одному на строке. Ребро номер i описывается двумя натуральными числами bi, ei — номерами концов ребра (1<=bi,ei<=n). Допускаются петли и параллельные ребра. Выходные данные В первой строке выходного файла выведите целое число k— количество компонент связности графа. Во второй строке выведите n натуральных чисел a1,a1,…,an, не превосходящих k, где ai — номер компоненты связности, которой принадлежит i-я вершина. D. Топологическая сортировка ограничение по времени на тест2 секунды ограничение по памяти на тест256 мегабайт вводстандартный ввод выводстандартный вывод Дан ориентированный невзвешенный граф. Необходимо построить его топологическую сортировку. Входные данные В первой строке входного файла даны два натуральных числа n и m (1<=n<=100000, 0<=m<=100000) — число вершин и рёбер в графе соответственно. Далее в m строках перечислены рёбра графа. Каждое ребро задаётся парой чисел — номерами начальной и конечной вершин соответственно. Выходные данные Выведите любую топологическую сортировку графа в виде последовательности номеров вершин. Если граф невозможно топологически отсортировать, выведите –1. G. Кратчайший путь – 2 ограничение по времени на тест2 секунды ограничение по памяти на тест256 мегабайт вводстандартный ввод выводстандартный вывод Дан неориентированный связный взвешенный граф. Найдите кратчайшее расстояние от первой вершины до всех вершин. Входные данные В первой строке входного файла два числа: n и m (2<=n<=30000,1<=m<=400000), где n— количество вершин графа, а m — количество ребер. Следующие m строк содержат описание ребер. Каждое ребро задается стартовой вершиной, конечной вершиной и весом ребра. Вес каждого ребра — неотрицательное целое число, не превосходящее 104. Выходные данные Выведите n чисел — для каждой вершины кратчайшее расстояние до нее. H. Цикл отрицательного веса ограничение по времени на тест2 секунды ограничение по памяти на тест256 мегабайт вводстандартный ввод выводстандартный вывод Дан ориентированный граф. Определите, есть ли в нем цикл отрицательного веса, и если да, то выведите его. Входные данные Во входном файле в первой строке число N (1 <= N <= 100) — количество вершин графа. В следующих N строках находится по N чисел — матрица смежности графа. Все веса ребер не превышают по модулю 10 000. Если ребра нет, то соответствующее число равно 100 000. Выходные данные В первой строке выходного файла выведите «YES», если цикл существует или «NO» в противном случае. При его наличии выведите во второй строке количество вершин в искомом цикле и в третьей строке — вершины входящие в этот цикл в порядке обхода. Ограничения-подсказки: В “B“ задаче используется префикс функция и алгоритм Кнута-Морриса-Пратта Задача “С“: использовать параллелизм и увеличить размер стека для рекурсии, чтобы уложиться по времени Оплата не будет осуществлена до тех пор, пока коды не пройдут все закрытые! тесты на codeforces. Срок решения до 28 марта включительно.