Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
final_sleep
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 19
#1

"Бусы". Пятая международная олимпиада по информатике, г. Мендоса, Аргентина, 16-25 октября 1993 г. - C++

12.12.2010, 12:19. Просмотров 641. Ответов 0
Метки нет (Все метки)

Задача 'Бусы'

Максимальная оценка: 20 баллов
Ограничение времени на тест: 5 минут


Имеются бусы, состоящие из N (N<=100) бусинок, некоторые из которых красного или голубого цвета, а остальные - белые. На рис. 1 и рис. 2 приведены два примера бус для N=29 (цифрами отмечены позиции первой и второй бусинок).

Конфигурация бус задается последовательностью цветов бусинок ("b" - голубая, "r" - красная, "w" - белая), начиная с бусинки номер 1. Например, бусы на рис. 1 задаются последовательностью:

brbrrrbbbrrrrrbrrbbrbbbbrrrrb

Порвем бусы и затем начнем снимать бусинки одного цвета с первого конца, пока не встретится бусинка другого цвета. То же самое проделаем со вторым концом (бусинки, снятые с разных концов, могут быть разного цвета). Требуется определить точку такого разрыва данных бус, при котором суммарное количество бусинок, собранных с обоих концов, максимально. Например, для бус на рис. 1 точка разрыва может находиться между 24 и 25 бусинками или между 9 и 10 бусинками; при этом суммарное количество бусинок в обоих случаях равняется 8.

При снятии бусинок с каждого из концов белая бусинка рассматривается как бусинка голубого или красного цвета по ситуации, то есть может сниматься как с голубыми, так и с красными.

Напишите программу, которая:
Вводит данные из входного ASCII-файла с именем NECK- LACE.DAT, каждая строка которого содержит конфигурацию бус, заданную в виде последовательности цветов и записывает входные данные в выходной ASCII-файл с именем NECKLACE.SOL. Пример входного файла NECKLACE.DAT:
brbrrrbbbrrrrrbrrbbrbbbbrrrrb
bbwbrrrwbrbrrrrrb
Для каждой конфигурации бус определяет M - максимальное число собранных бусинок и положение одной из оптимальных точек разрыва.
Выводит в качестве результата в выходной файл с именем NECKLACE.SOL число M и точку разрыва. Ответы для разных конфигураций отделяются пустой строкой. Пример выходного файла NECKLACE.SOL:
brbrrrbbbrrrrrbrrbbrbbbbrrrrb
8 between 9 and 10

bbwbrrrwbrbrrrrrb
10 between 16 and 17

примеры в прикреплениях.

помогите, кому не сложно.
нужно получить допуск к экзамену, а в си мягко говоря еще не слишком компетентен(
спасибо заранее.
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 12:19     "Бусы". Пятая международная олимпиада по информатике, г. Мендоса, Аргентина, 16-25 октября 1993 г.
Посмотрите здесь:

C++ Международная Жаутыковская Олимпиада - 2009
C++ Курсовая по информатике(сам в С++ пока полный "0")
C++ Школьная олимпиада по информатике
Определить "Y" с точностью до члена ряда меньшего "e"(допустим: 0.001) C++
Международная олимпиада по программированию 1994г. Задач "Матрица простых чисел". C++
C++ Вычисление суммы позиций на которых в слове Х стоят буквы "в" и "п"
C++ Подсчитать, колько раз в произвольном тексте встречается символ "*" и "+"
Олимпиада по информатике C++
Error C2361: пропуск инициализации "Height" из-за метки "default" C++
Во введённой строке требуется поменять все буквы "а" на "i", и наоборот C++
Определить, сколько учеников имеют по информатике оценку "5" C++
C++ Найти угол одной точки "A" в соотношении к точке "B" в градусах

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru