|
Задачи международной олимпиады 1993 года
Имеются бусы, состоящие из N (N<=100) бусинок, некоторые из которых красного или голубого цвета, а остальные - белые. На рис. 1 и рис. 2 приведены два примера бус для N=29 (цифрами отмечены позиции первой и второй бусинок).
o x x o x o o x
o x x x
o o x o
o o @ o
x o @ @
x x o o
x x x x
x x o x
o o x o
x o o o
x o o o
o o o x
o x o o o @
Рис. 1 Рис. 2
о - красная бусинка Конфигурация бус задается последовательностью цветов
бусинок ("b" - голубая, "r" - красная, "w" - белая), начиная с бусинки
номер 1. Например, бусы на рис. 1 задаются последовательностью:
Порвем бусы и затем начнем снимать бусинки одного цвета с первого конца, пока не встретится бусинка другого цвета. То же самое проделаем со вторым концом (бусинки, снятые с разных концов, могут быть разного цвета). Требуется определить точку такого разрыва данных бус, при котором суммарное количество бусинок, собранных с обоих концов, максимально. Например, для бус на рис. 1 точка разрыва может находиться между 24 и 25 бусинками или между 9 и 10 бусинками; при этом суммарное количество бусинок в обоих случаях равняется 8. При снятии бусинок с каждого из концов белая бусинка рассматривается как бусинка голубого или красного цвета по ситуации, то есть может сниматься как с голубыми, так и с красными. Напишите программу, которая:
Некоторые компании являются совладельцами других компаний, так как приобрели часть их акций. Например, компания Форда владеет 12% акций компании Мазда. Говорят, что компания А контролирует компанию В, если имеет место по меньшей мере одно из следующих условий:
Задача, которую надо решить, заключается в следующем: Дана последовательность троек чисел (i,j,p), означающих, что компания i владеет p% акций компании j. Требуется определить все пары чисел (h,s), при которых компания h контролирует компанию s. Общее число компаний не превышает 100. Напишите программу, которая:
Пример:
N прямоугольников различных цветов располагаются на белом прямоугольном листе бумаги, имеющем размеры А см в ширину и В см в длину. Стороны прямоугольников параллельны краям листа, а сами прямоугольники не выходят за пределы листа. В результате образуются различные одноцветные фигуры. Если два прямоугольника одного цвета имеют хотя бы одну общую точку, то они являются частями одной фигуры. Задача состоит в вычислении площади каждой из видимых одноцветных фигур для каждого цвета. А и В - четные положительные целые числа, не превосходящие 30. Начало системы координат находится в центре листа, а оси параллельны краям листа. Наборы данных для нескольких тестов записаны во входном ASCII-файле с именем RECTANG.DAT следующим образом: А, В и N находятся в первой строке каждого набора данных и разделены пробелом. В каждой из следующих N строк находятся:
Порядок строк соответствует порядку, в котором прямо- угольники размещались на листе от первого до последнего. Наборы данных для различных тестов разделены пустой строкой (см. пример). Напишите программу, которая:
Пример:
Вы победили в соревновании, организованном Канадскими авиалиниями. Приз - бесплатное путешествие по Канаде. Путешествие начинается с самого западного города, в который летают самолеты, проходит с запада на восток, пока не достигнет самого восточного города, в который летают самолеты. Затем путешествие продолжается обратно с востока на запад, пока не достигнет начального города. Ни один из городов нельзя посещать более одного раза за исключением начального города, который надо посетить ровно дважды (в начале и в конце пу- тешествия). Вам также нельзя пользоваться авиалиниями других компаний или другими способами передвижения. Задача состоит в следующем: дан список городов и список прямых рейсов между парами городов; найти маршрут, включающий максимальное количество городов и удовлетворяющий вышеназванными условиям. Несколько наборов входных данных помещены в ASCII-файл C:\IOI\ITIN.DAT. Каждый набор содержит:
Различные наборы входных данных разделены пустой строкой. После последнего набора данных пустой строки не будет. Пример файла входных данных C:\IOI\ITIN.DAT:
Входные данные корректны, и их проверка не требуется. Решения, полученные для каждого набора входных данных, должны быть последовательно записаны в выходной ASCII-файл C:\IOI\ITIN.SOL следующим образом:
Обратите внимание, что исходный город должен быть также выведен последним. Если для набора входных данных не существует решения, то для этого набора в выходном файле C:\IOI\ITIN.SOL должны быть только две записи: общее количество городов и сообщение "NO SOLUTION" (нет решения). Решения для разных наборов входных данных должны разделяться в выходном файле пустой строкой. Образец выходного файла C:\IOI\ITIN.SOL для приведенного выше примера:
Поместите вашу программу-решение в ASCII-файл с именем C:\IOI\DDD.xxx. Расширение .xxx равно .BAS для QBasic, .LCN для LOGO, .C для C, .PAS для PASCAL. |