Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль / okulov / okulov / chapter4.DOC
Скачиваний:
61
Добавлен:
10.12.2013
Размер:
2 Мб
Скачать
☆

4.10. Олимпиада - 98

r98_1Треугольники, у которых длины сторон и площадь являются целыми числами, называются треугольниками Герона.

Написать программу, которая:

  • по введенным с клавиатуры трем числам - длины сторон(a, b, c),определяет, является ли треугольник Героновым, и выводит его площадь;

  • находит треугольники Герона, у которых стороны являются соседними числами (например, a=3, b=4, c=5) и значения длин сторон принадлежат интервалу целых чисел от 2 до 20;

  • находит треугольники Герона с площадью, равной его периметру (значения длин сторон принадлежат интервалу целых чисел от 2 до 20).

r98_2 Игра между двумя игроками. Дана последовательность изN положительных целых чисел(N - четное число). ЗначениеN и последовательность чисел вводятся с клавиатуры. Игроки ходят по очереди. Ход заключается в том, что игрок выбирает число, расположенное на левом или на правом конце последовательности. Выбранное число стирается. Игра заканчивается, когда чисел не останется. Первый игрок выигрывает, если сумма выбранных им чисел не меньше, чем сумма чисел, выбранных вторым игроком. Первый игрок всегда ходит первым. Известно, что у первого игрока есть выигрышная стратегия.

Требуется написать программу, которая реализует выигрышную стратегию первого игрока (играют компьютер и человек).

r98_3 Арифметический ребус - это зашифрованная запись сложения двух натуральных чисел (например, КОМП+КОМП=СБОРЫ). При этом одинаковым буквам должны соответствовать одинаковые цифры, разным - разные, и ни одно из чисел не может начинаться с нуля.

Требуется написать программу, находящую одно из решений ребуса.

Входные данные: единственная строка с записью ребуса вводится с клавиатуры. Длина строки не превышает 20 символов.

Выходные данные: Одно из решений ребуса (выводится на экран монитора).

Пример:

ЛЕТО+ЛЕТО=ПОЛЕТ

8947+8947=17894

o98_1 Вводитсяïîследовательность целых чисел (в диапазонеот -32000 до 32000). Требуется разбить их на пары так, чтобы произведения чисел в парах были одинаковы.

Входные данные:Вводится N (количество чисел),1<=N<=100.Затем вводятсяNцелых чисел.

Выходные данные: Если разбить на пары можно, то выдать произведение чисел в паре (все варианты), иначе - сообщение "Нет решения".

o98_2 Часы древних марсиан устроены следующим образом: из большой корзины каждую секунду выкатывается шарик и попадает в первую корзину. Как только в ней накапливается пять шариков, корзина переворачивается и четыре шарика возвращаются в большую корзину, а пятый шарик попадает во вторую корзину. Как только во второй корзине накапливается шесть шариков, пятьèç íèõ возвращаютсяâ большую корзину, à шестой - â третью корзину и так далее(â третьей корзине накапливается 7 шариков, â четвертой 8 ....).

Часы проработали T секунд. Они должны работать ещеP секунд. Требуется определить минимальное количество шариков в большой корзине в момент времени Т, необходимое для успешной работы часов в течение этихP секунд.

Входные данные: T è P (T³0, P³0, T+P<=1 000 000 000).

Выходные данные: количество шаров.

Пример:

Входные данные: 0 32

Ответ: 10

o98_3 ЕстьNлампочекè M переключателей, каждый из которых какие-то лампочки переключает, а какие-то нет. Сначала часть лампочек включена. Договоримся горящие лампочки обозначать 1, а выключенные - 0. Для переключателей будем писать 1, если переключатель меняет состояние данной лампочки, и 0, если не меняет. Тогда любой переключатель можно представить строкой изN нолей и единиц. Начальное и конечное состояние лампочек также закодируем строкой из 0 и 1. «Применение» переключателя к лампочкам приводит к тому, что включенные лампочки становятся выключенными, а выключенные - включенными (естественно, это справедливо только для лампочек, к которым есть доступ от этого переключателя). Напишите программу, которая определяет, какие переключатели нужно применить, чтобы лампочки перешли в конечное состояние.

Входные данные:

Вводятся числа N иM (1<=N<=50, 1<=M<=50).

Вводится строка, характеризующая начальное состояние лампочек.

Вводится строка, характеризующая конечное состояние лампочек.

Вводится M строк, характеризующих переключатели.

Выходные данные: Номера переключателей, которые нужно применить, причем каждый переключатель можно применить не более 1 раза, либо сообщение "Нет решения".

Пример:

Входные данные:

5 3

10010

11000

11100

10001

10110

Выходные данные:

1 3

o98_4 Последовательность из латинских букв строится следующим образом. Первоначально последовательность пуста. На каждом последующем шаге последовательность удваивается, после чего к ней дописывается очередная буква латинского алфавита (a, b, c, ...). Ниже приведены первые шаги построения последовательности.

Шаг 0. Пустая последовательность

Шаг 1. a

Шаг 2. baa

Шаг 3. cbaabaa

Шаг 4. dcbaabaacbaabaa

.....

Требуется написать программу, которая определяет по заданному числу N (1£N<226) символ, стоящий наN-м месте в последовательности, получившейся после 26-го шага.

Пример. Вход4. Выход -w.

o98_5 ДаноNцелых чисел (1£N£100).Каждое из них можно изменить не более чем на величинуL(целую), как в сторону увеличения, так и в сторону уменьшения или оставить без изменения. Если после такой операции некоторые из чисел оказываются равными, то они засчитываются за одно. Написать программу поиска такой операции, в результате которой остается наименьшее количество чисел.

Входные данные:

В первой строке значения L (1<=L<=32000) и N.

Во второй строке Nчисел (в диапазоне от -32000 до 32000), записанных через пробел.

Выходные данные: количество оставшихся чисел.

Пример.

10 3

11 21 27

Результат - 1.

o98_6 Найти площадь пересеченияN прямоугольников со сторонами, параллельными осям координат.

Входные данные:

Вводится число N(количество прямоугольников 2£N£1000 ).

Затем вводится Nчетверок действительных чиселXi1 Yi1 Xi2 Yi2, задающих координаты левого нижнего и правого верхнего углов прямоугольника.

Выходные данные: вывести площадь пересечения (общей части) всех данных прямоугольников, либо выдать, что они не пересекаются.

Пример:

3

0 0 10 10

5 5 15 15

-1.5 0 7 8

Ответ: 6

178

Соседние файлы в папке okulov