Работа №9

Комментарий: перечитайте комментарии ко всем предыдущим работам.


Вариант 1: циклический сдвиг массива

Осуществить циклический сдвиг массива целых чисел из, например, 10 (но предусмотреть общий случай) элементов вправо или влево (по желанию пользователя) на указанное число элементов. Исходный массив считать из файла, результат вывести на экран.

Пример сдвига вправо на 3:

Было: 1 2 3 4 5 6 7 8 9

Стало: 7 8 9 1 2 3 4 5 6


Пример сдвига влево на 2:

Было: 1 2 3 4 5 6 7 8 9

Стало: 3 4 5 6 7 8 9 1 2


Вариант 2: поиск расстояний во взвешенном дереве

Дано взвешенное дерево. Найти кратчайшее расстояние между заданными вершинами.

Исходные данные содержатся в файле (имя придумайте сами) и выглядят следующим образом:

Первая строка содержит целое число n — количество вершин в дереве (1 ≤ n ≤ 10). Вершины нумеруются целыми числами от 0 до n – 1. В следующих n – 1 строках содержится по три целых числа u, v, w, которые соответствуют ребру весом w (0 ≤ w ≤ 100), соединяющему вершины u и v. В следующей строке содержится целое число m – количество запросов на нахождение кратчайшего пути (1 ≤ m ≤ 10). В следующих m строках содержится по два числа — номера вершин, расстояние между которыми необходимо вычислить.

Необходимо считать данные из файла, сделать с ними всё что нужно для решения задачи, после чего найти решение задачи для данных из исходного файла и вывести их в файл с именем result.txt. Если путь между вершинами не существует – вывести в качестве расстояния между вершинами 99999.

Пример содержимого исходного файла:

3

1 0 1

2 0 1

3

0 1

0 2


1 2

Пример содержимого файла с результатом для приведённого исходного файла:

1

1

2


Вариант 3: подсчёт повторений слов в тексте

Дан текст (в файле). Вывести на экран слова текста с количеством повторений в данном тексте. Для простоты можно считать, что число уникальных слов в тексте не более 30.