VI Всеукраїнська олімпіада з інформатики
Первый тур
Бизнес-турист.
Есть N стран и K видов товара. Бизнес-турист, гражданин 1-й страны, имеет начальный капитал в M денежных единиц и намерен получить на торговых операциях как можно больший капитал. Турист может купить в родной стране любых товаров по своим финансовым возможностям, поехать только в одну из других стран, продать там все товары, в пределах имеющихся средств купить любых товаров, вернуться домой и продать их.
Для каждой страны и каждого вида товара известна стоимость единицы данного товара в данной стране (считается, что стоимости купли и продажи равны).
Проезд должен быть оплачен. Для каждой зарубежной страны известна стоимость проезда из первой страны в нее или обратно. Расчет за поездку производится непосредственно перед ней.
Все денежные суммы представлены в одних единицах.
Напишите программу, которая:
- вводит исходные данные из файла и выводит их на экран в виде таблиц
- позволяет человеку в диалоговом режиме задать маршрут поездки и приобретаемые товары и рассчитывает расходы, доходы и текущее состояние финансов
- в ходе диалога проверяет правильность действий человека
- определяет как можно более выгодные поездку и торговые операции
- определяет, возможно ли вообще и выгодно ли при заданных условиях заниматься бизнес-туризмом.
Технические условия
- Поместите вашу программу-решение в текстовый ASCII-файл по имени "C:OLIMPDAY-1TOUR1-1.xxx". Раcширение .xxx должно быть: .BAS для программ на Basic, .C для программ на C, .PAS для программ на Pascal.
- Программа должна прочитать входные данные из текстового ASCII-файла "C:OLIMPDAY-1TEST1-1.TXT". Этот файл имеет такую структуру:
- в его первой строке содержится количество стран N, во второй - количество товаров K, в третьей - начальный капитал M;
- в следующих N строках содержатся стоимости товаров. Каждая строка соответствует одной стране и содержит K чисел; каждые 2 соседних числа разделены пробелом. Эти числа равны стоимостям соответствующих товаров в этой стране.
- в следующей строке содержатся стоимости проезда. Строка содержит N-1 чисел; каждые 2 соседних числа разделены пробелом. Эти числа равны стоимостям проезда в соответствующие страны. Стоимость проезда между двумя странами не зависит от направления поездки.
- Количества стран и видов товара не превосходят 20; денежные суммы - целые числа, не превосходящие 32000 единиц.
- Диалог и выходные данные оформляйте по образцу, приведенному ниже.
Пример
Входные данные:
3 {количество стран}
4 {количество видов товара}
10 {начальный капитал}
1 5 9 20 {стоимости товаров в 1-й стране}
5 9 1 80 {стоимости товаров во 2-й стране}
9 1 5 90 {стоимости товаров в 3-й стране}
1 2 {стоимости проезда из 1-й страны}
Эти данные подготовлены в файле
"C:OLIMPDAY-1EX1-1.TXT". Вы можете использовать его для от-
ладки. Но успешная работа Вашей программы на этом примере не
гарантирует правильности вашей программы!
Оформление диалога и результатов
<запуск программы>
страны - 3, видов товара - 4, начальный капитал - 10
стоимости товара:
|
товар |
страна |
1 |
2 |
3 |
4 |
1 |
1 |
5 |
9 |
20 |
2 |
5 |
9 |
1 |
80 |
3 |
9 |
1 |
5 |
90 |
стоимости проезда:
Выберите режим работы: 1 - диалог 2 - оптимизация 3 - выход <человек выбирает 1> <ответы человека следуют за вопросительными знаками> Покупка товара(0-4)? 4 {0 - конец закупки товаров} Сколько? 1 Не хватает денег Покупка товара(0-4)? 2 Сколько? 1 Расход: 5, капитал: 5 Покупка товара(0-4)? 1 Сколько? 4 Расход: 4, капитал: 1 Покупка товара(0-4)? 0 Направление поездки(1-3)? 2 Расход: 1, капитал: 0 Товар продается в стране 2 Доход: 29, капитал: 29 Покупка товара(0-4)? 3 Сколько? 28 Расход: 28, капитал: 1 Покупка товара(0-4)? 0 Возврат в страну 1 Расход: 1, капитал: 0 Товар продается в стране 1 Доход: 252, капитал: 252 Будете анализировать другой маршрут(д/н)? д Покупка товара(0-4)? 1 . . . . . . Доход: 350, капитал: 350 Будете анализировать другой маршрут(д/н)? н Выберите режим работы: 1 - диалог 2 - оптимизация 3 - выход <человек выбирает 2> <выполняется оптимизация> Предлагаю маршрут: Купить товар 1, количество единиц - 9 Поехать в страну 2 Продать товар Купить товар 3,количество единиц - 44 Вернуться в страну 1 Продать товар Итоговый капитал: 396 Выберите режим работы: 1 - диалог 2 - оптимизация 3 - выход <человек выбирает 3> <конец работы>
Cистема оценки:
- до 3 баллов
- до 10 баллов
- до 10 баллов
- до 70 баллов пропорционально полученной прибыли
- до 7 баллов
Другий тур
Словесна гра
Задано словник - таблицю з N слiв, кожне з яких складається з K лiтер. Два гравцi по черзi вибирають слова з словника за такими правилами:
- перше слово вибирається довiльно
- кожне наступне слово повинно вiдрiзнятися вiд попереднього рiвно на одну лiтеру. Iншi лiтери, а також порядок лiтер змiнюватись не можуть
- не можна вибирати слово, яке ранiше вибиралось будь-ким з гравцiв.
Гравець, який не зможе вибрати наступне слово, програє.
ЗАВДАННЯ: Напишiть програму, яка:
- грає з людиною, дотримуючись правил (оцiнка - до 15 балiв)
- слiдкує за виконанням правил гри людиною (оцiнка - до 15 балiв)
- визначає, хто з гравцiв (той, хто починає першим або другим) може забезпечити собi перемогу, та грає за цього гравця (оцiнка - до 35 балiв)
- дає людинi право вибору черги ходу та виграє у людини, якщо вона помиляється (оцiнка - до 35 балiв).
Технiчнi умови
- Запишiть вашу програму-розв'язок в текстовий ASCII-файл з iм'ям TOUR2-1.xxx. Розширення .xxx має бути: .BAS для програм на Basic, .C для програм на C, .PAS для програм на Pascal.
- Програма повинна прочитати вхiднi данi з текстового ASCII-файлу TEST2-1.TXT. Цей файл має таку структуру: в його першому рядку мiститься кiлькiсть слiв N, в другому - довжина слiв K, в наступних N рядках мiстяться слова. Кожне слово записане в окремому рядку малими українськими або росiйськими лiтерами. Коди українських лiтер: i - 105, є - 243, ї - 245.
- Кiлькiсть слiв не перевищує 20; довжина слiв не перевищує 5.
Приклад вхiдного та вихiдного файлiв
Вхiднi данi:
5 {кiлькiсть слiв}
4 {довжина слiв}
корт
пост
тест
тост
торт
Цi данi приготовано в файлi EX2-1.TXT. Ви можете користу-
ватися ним для налагодження. Але успiшна робота Вашої програми
на цьому прикладi не гарантує правильностi програми!
Гра може проходити таким чином:
хiд 1 гравець 2 гравець
1 корт торт
2 тост пост - 2 гравець перемiг.
|