Лабораторная работа №9
Задача 1
Поменять значения переменных A и В, не пользуясь другими переменными.
Задача 2
Вводится число N (не больше 10). Вычислите N! В программе не должно быть ни одного цикла.
Задача 3
Вводится число N и N элементов массива. Найдите величину минимального элемента массива (в программе не должно быть циклов, кроме цикла для ввода, в котором запрещается делать что-либо, кроме ввода данных.
Задача 4
Вводится число N и N элементов массива. Требуется, посчитать сумму элементов массива. В программе запрещается использовать циклы.
Задача 5
Вводится число N и N элементов массива. Требуется вывести эти элементы в обратном порядке. В программе запрещается описывать массивы и использовать циклы.
Задача 6
Вводятся два числа - N и K. Требуется вывести в файл все цепочки длины N такие, что на каждом месте может стоять любое число от 1 до K.
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
Задача 7 «Гвоздики»
На прямой дощечке вбиты гвоздики. Любые два гвоздика можно соединить ниточкой. Требуется соединить какие-то пары гвоздиков ниточками так, чтобы к каждому гвоздику была привязана хотя бы одна ниточка, а суммарная длина всех ниточек была минимальна.
Входные данные
В первой строке входного файла записано число N – количество гвоздиков (2 ≤ N ≤ 100). В следующей строке записано N чисел - координаты всех гвоздиков (неотрицательные целые числа, не превосходящие 10000).
Выходные данные
В выходной файл нужно вывести единственное число - минимальную суммарную длину всех ниточек.
Пример входного файла
5
4 10 0 12 2
Пример выходного файла
6
Задача 8 «Заправки»
В стране N городов, некоторые из которых соединены между собой дорогами. Для того, чтобы проехать по одной дороге требуется один бак бензина. В каждом городе бак бензина имеет разную стоимость. Вам требуется добраться из первого города в N-ый, потратив как можно меньшее количество денег.
Входные данные
Во входном файле записано сначала число N (1≤N≤100), затем идет N чисел, i-ое из которых задает стоимость бензина в i-ом городе (все это целые числа из диапазона от 0 до 100). Затем идет число M - количество дорог в стране, далее идет описание самих дорог. Каждая дорога задается двумя числами - номерами городов, которые она соединяет. Все дороги двухсторонние (то есть по ним можно ездить как в одну, так и в другую сторону), между двумя городами всегда существует не более одной дороги, не существует дорог, ведущих из города в себя.
Выходные данные
В выходной файл выведите одно число - суммарную стоимость маршрута или -1, если добраться невозможно.
Пример входного файла
4
1 10 2 15
4
1 2 1 3 4 2 4 3
Пример выходного файла
3
Комментарий
Оптимальное решение - из 1-го города поехать в 3-й, а затем в 4-й. Горючее придется покупать в 1 и 3 городах.
Пример входного файла
4
1 10 2 15
0
Пример выходного файла
-1
Комментарий
Добраться невозможно
Задача 9 «Пиво в розлив»
Имеются три пробирки, вместимостью 100 миллилитров каждая. Первые две пробирки имеют риски, одинаковые на обеих пробирках. Возле каждой риски надписано целое число миллилитров, которое вмещается в часть пробирки от дна до этой риски.
Изначально первая пробирка содержит 100 миллилитров пива, а остальные две пусты. Требуется написать программу, которая выясняет, можно ли отделить в третьей пробирке один миллилитр пива, и если да, то находит минимально необходимое для этого число переливаний. Пиво можно переливать из одной пробирки в другую до тех пор, пока либо первая из них не станет пустой, либо одна из пробирок не окажется заполненной до какой-либо риски.
Входные данные
В первой строке входного файла содержится число рисок N (1≤N≤20), имеющихся на каждой из первых двух пробирок. Затем в порядке возрастания следуют N целых чисел V1,..., VN (1≤Vi≤100), приписанных рискам. Последняя риска считается сделанной на верхнем крае пробирок (VN = 100).
Выходные данные
В первой строке выходного файла должна содержаться строка "YES", если в третьей пробирке возможно отделить один миллилитр пива, и "NO" - в противном случае. В случае ответа "YES" во вторую строку необходимо вывести искомое количество переливаний.
Пример входного файла
4
13 37 71 100
Пример выходного файла
YES
8
Задача 10 «Ханойская башня»
Есть три стержня. На первом из них расположено N колец (1-е, верхнее, самое маленькое, N-ое, нижнее, самое большое). За один ход разрешается с любого стержня снять верхнее кольцо и надеть его на любой другой стержень. При этом запрещается класть большее кольцо на меньшее. Требуется, чтобы все кольца оказались на стержне номер 2.
Входные данные
Во входном файле записано одно число N (1≤N≤10)
Выходные данные
В выходной файл выведите последовательность команд. Каждая команда задается двумя числами - с какого стержня снимаем кольцо, и на какой надеваем.
Пример входного файла
2
Пример выходного файла
1 3
1 2
3 2
Задача 11 «Лямзики»
Лямзики — это протобионные организмы, обитающие на далекой планете. Существует три вида лямзиков — красные, зеленые и синие. Первоначально в колонии могут находиться представители двух или всех трех видов. Но если два лямзика разных цветов встречаются, то они сливаются, образуя организм третьего цвета (например, встреча синего и красного приводит к образованию зеленого). Наступает момент, когда колония становится одноцветной. Написать программу, которая по введенным целым неотрицательным значениям численности красных, зеленых и синих лямзиков определяет все возможные конечные цвета колонии.
Например, для N=2, K=3 должно быть выведено: