VI Всеукраїнська олімпіада з інформатики

Перший тур

 

 

Бiзнес-турист.

    Є N країн та K видiв товару. Бiзнес-турист, громадянин першої країни, має початковий капiтал в M грошових одиниць та намагається одержати на торгових операцiях якомога бiльший капiтал. Турист може купити в рiднiй країнi будь-яких товарiв в межах своїх фiнансових можливостей, поїхати тiльки в одну з iнших країн, взявши свої товари та грошi, продати там всi товари, в межах наявних грошей купити будь-яких товарiв, повернутися додому та продати їх. Поїздки дозволяється робити i без товарiв. Для кожної країни i кожного виду товара вiдома вартiсть одиницi цього товару в цiй країнi (вважається, що вартiсть купiвлi дорiвнює вартостi продажу). Витрати за проїзд не враховуються. Всi грошовi суми представлено в однакових одиницях. Кiлькiсть одиниць товарiв кожного виду необмежена. Товари неподiльнi, тобто їх кiлькостi цiлi.
    Напишiть програму, яка:
  • дозволяє людинi в дiалоговому режимi задати напрямок подорожi та операцiї купiвлi-продажу товарiв i розраховує витрати, прибутки та поточний стан фiнансiв (оцiнка до 10 балiв)
  • в ходi дiалогу перевiряє правильнiсть дiй людини (оцiнка - до 10 балiв)
  • визначає якомога вигiднiшi подорож та торговi операцiї (оцiнка - до 70 балiв в залежностi вiд одержаного прибутку)
  • визначає, чи можливо взагалi за даних умов займатися бiзнес-туризмом, а також чи може бiзнес-туризм принести прибуток (оцiнка - до 10 балiв).

Технiчнi умови

  1. Запишiть вашу програму-розв'язок в текстовий ASCII- файл з iм'ям TOUR1-1.xxx. Розширення .xxx має бути: .BAS для програм на Basic, .C для програм на C, .PAS для програм на Pascal.
  2. Програма повинна прочитати вхiднi данi з текстового ASCII-файлу TEST1-1.TXT. Цей файл мiстить кiлька тестових на- борiв даних. Кожен набiр має таку структуру: в його першому рядку мiститься кiлькiсть країн N, в другому - кiлькiсть видiв товару K, в третьому - початковий капiтал M; в наступних N рядках мiстяться вартостi товарiв. Кожен рядок вiдповiдає однiй країнi та мiстить K чисел; кожнi 2 сусiднiх числа роздiлено пробiлом. Цi числа дорiвнюють вартостям вiдповiдних товарiв в цiй країнi.
  3. Кiлькостi країн та видiв товару не перевершують 10; грошовi суми - цiлi числа, що не перевершують 32000 одиниць.
  4. Дiалог та результати впорядкуйте за наведеним зразком.



  5.  
  6.  
 

Приклад вхiдного та вихiдного файлiв

Вхiднi данi:
3             {початок першого набору даних, кiлькiсть країн}
4             {кiлькiсть видiв товару}
10            {початковий капiтал}
1 4 9 20      {вартостi товарiв в 1-й країнi}
5 9 1 80      {вартостi товарiв в 2-й країнi}
9 1 6 90      {вартостi товарiв в 3-й країнi}
3             {початок другого набору даних, кiлькiсть країн}
4             {кiлькiсть видiв товару}
10            {початковий капiтал}
11 12 13 14   {вартостi товарiв в 1-й країнi занадто великi}
21 22 23 24   {вартостi товарiв в 2-й країнi занадто великi}
31 32 33 34   {вартостi товарiв в 3-й країнi занадто великi}
     Цi данi приготовано в файлi EX1-1.TXT. Ви можете користу-
ватися ним для налагодження. Але успiшна робота Вашої програми
на цьому прикладi не гарантує правильностi програми!

Впорядкування дiалога та результатiв:
<старт програми, перший набiр даних читається з диска>
Виберiть режим роботи:
1-дiалог, 2-оптимiзацiя, 3-наступний набiр даних, 4-вихiд
<людина вибирає 1, далi її вiдповiдi наводяться пiсля знакiв ?>
Купiвля товару(0-4)? 4, скiльки? 1 -!-Не вистачає грошей-!-
Купiвля товару(0-4)? 2, скiльки? 1
Витрата: 4, капiтал: 6
Купiвля товару(0-4)? 2 -!-Ви вже його купували-!-
Купiвля товару(0-4)? 1, скiльки? 5
Витрата: 5, капiтал: 1
Купiвля товару(0-4)? 0         {0 - кiнець закупiвлi товарiв}
Напрямок поїздки(2-3)? 2
Товар продається в країнi 2, прибуток: 34, капiтал: 35
Купiвля товару(0-4)? 3, скiльки? 35
Витрата: 35, капiтал: 0
Купiвля товару(0-4)? 0
Повернення в країну 1
Товар продається в країнi 1, прибуток: 315, капiтал: 315
Виберiть режим роботи:
1-дiалог, 2-оптимiзацiя, 3-наступний набiр даних, 4-вихiд
<людина вибирає 1>>
Купiвля товару(0-4)? 1
  .  .  .  .  .  .
Товар продається в країнi 1, прибуток: 135, капiтал: 135
Виберiть режим роботи:
1-дiалог, 2-оптимiзацiя, 3-наступний набiр даних, 4-вихiд
<людина вибирає 2, виконується оптимiзацiя>
Пропоную маршрут:
Купити 10 одиниць товару 1
Поїхати в країну 3, продати товар
Купити 90 одиниць товару 2
Повернутися в країну 1, продати товар
Пiдсумковий капiтал: 450
Виберiть режим роботи:
1-дiалог, 2-оптимiзацiя, 3-наступний набiр даних, 4-вихiд
<людина вибирає 3, другий набiр даних читається з диска>
Виберiть режим роботи:
1-дiалог, 2-оптимiзацiя, 3-наступний набiр даних, 4-вихiд
<людина вибирає 2, виконується оптимiзацiя>
-!-Займатися бiзнес-туризмом за цих умов неможливо-!-
Виберiть режим роботи:
1-дiалог, 2-оптимiзацiя, 3-наступний набiр даних, 4-вихiд
<людина вибирає 4, кiнець роботи>

 

Другий тур

 

 

Словесна гра

    Задано словник - таблицю з 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 умови

  1. Запишiть вашу програму-розв'язок в текстовий ASCII-файл з iм'ям TOUR2-1.xxx. Розширення .xxx має бути: .BAS для програм на Basic, .C для програм на C, .PAS для програм на Pascal.
  2. Програма повинна прочитати вхiднi данi з текстового ASCII-файлу TEST2-1.TXT. Цей файл має таку структуру: в його першому рядку мiститься кiлькiсть слiв N, в другому - довжина слiв K, в наступних N рядках мiстяться слова. Кожне слово записане в окремому рядку малими українськими або росiйськими лiтерами. Коди українських лiтер: i - 105, є - 243, ї - 245.
  3. К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г.

Повний архів олімпіади (62 Kb)


© Всеукраїнський віртуальний центр олімпіад школярів "ОЛІМП"

© LIKT 1998-2018