Задача A требует нахождения устойчивости ребер в графе. Устойчивостью ребра называется количество простых путей, проходящих через это ребро.
Для решения данной задачи можно использовать алгоритм Дейкстры или алгоритм Флойда-Уоршелла.
Алгоритм Флойда-Уоршелла нам подходит лучше, потому что он позволяет находить кратчайшие пути между всеми парами вершин в графе, а устойчивость ребра выражается через количество простых путей между вершинами, которые это ребро соединяет.
Шаги решения:
1. Прочитать входные данные.
2. Создать матрицу смежности графа размером N × N, заполнить все значения бесконечностью.
3. Заполнить матрицу смежности значениями 1 для всех ребер.
4. Применить алгоритм Флойда-Уоршелла для нахождения кратчайших путей между всеми парами вершин в графе.
5. Создать матрицу устойчивости ребер размером N × N, заполнить все значения нулями.
6. Для каждого ребра (vi, ui) в графе, вычислить устойчивость как количество простых путей между вершинами vi и ui в матрице кратчайших путей.
7. Вывести устойчивость всех ребер.
Алгоритм Флойда-Уоршелла имеет сложность O(N^3), где N – количество вершин в графе. Решение данной задачи будет использовать O(N^2) дополнительной памяти для хранения матрицы смежности и матрицы устойчивости ребер.
Общая сложность решения задачи A составляет O(N^3) для времени и O(N^2) для памяти.