Шановні учасники олімпіади!
Поздоровляємо вас з початком першого туру!
Ми сподівємося,що ви отримали правила та уважно їх вивчили.
Якщо ви зареєструвались із запізненням, і не отримали розсилку
з правилами, тоді ознайомитися з ними можливо на
rules.shtml.
Задачі першого туру, як ми й обіцяли,
нескладні. Але - не
поспішайте, добре подумайте, протестуйте свої програми, перш ніж
відправляти їх на перевірку.
Листи з розв'язками, оформлені за правилами
(!),
відправляйте за адресою
olymp@olymp.vinnica.ua
у будь-який зручний для вас час з
12 жовтня 2000 р. по
22 жовтня 2000 р.
Наш робот одразу вам повідомить
, що отримано вашого
листа. Якщо з якоїсь причини ваш розв'язок не компілюється,
робот повідомить вас про це та спробує пояснити причину.
У цьому випадку можете відправити лист ще раз. Якщо ж розв'язок
буде прийнято, повторні розв'язки однієї й тієї ж задачі робот
розглядати не буде.
Ми свідомо в цьому та й наступних турах
не плануємо
оголошувати учасникам вартість кожної задачі
в балах, щоб
не фіксувати вашу увагу на "дорогих" і "дешевих"
задачах. Єдина корисна для вас інформація - максимально в першому
турі можливо набрати 100 балів.
Складність завдань буде збільшуватися
від туру до туру, і,відповідно, сума балів за тур.
І ще раз не вважаємо зайвим вас попередити - слова
Введення >
та
Вивід <
не вводяться і не виводятся,
ми їх використовуємо для пояснення структури прикладу! )
Розсилання задач другого туру
планується 21 жовтня.
Щиро бажаємо вам творчих успіхів!
Оргкомітет і журі олімпіади.
Задача 1.
( надана профспілкою робітників культури )
Код задачі Illusion
Член нашої профспілки, відомий ілюзіоніст,
поповнив свій репертуар новим, цього разу математичним, фокусом
. Він пропонує глядачам із сцени сільського клуба:
Загадайте 2 натуральних
числа, перше з них - парне.
Перше піднесіть до квадрату і розділіть на 4. До результату
додайте друге число. З того, що утворилося, здобудьте квадратний
корінь. Сподіваюся, що ваш результат- число ціле…
Якщо ні - почніть із початку, задумавши нові числа.
Тепер спершу відніміть з кореня половину першого числа, а потім
додайте до кореня цю половину. Два отриманих у такий спосіб числа продиктуйте мені кожне окремо,
починаючи з останньої цифри...
Після цього наш колега з розумним виглядом називає числа, задумані глядачами. Нехай це зробить і ваша програма ( тобто вгадає задумані нами числа) . Ми теж не будемо пропонувати їй працювати з дробовим значенням кореня.
Введення-вивід
Ви вводите з клавіатури в першому рядку у оберненому порядку цифри першого числа, а у другому рядку - стоячі в оберненому порядку цифри другого числа.
Ви виводите на екран два шуканих числа, розділених пробілом.
Приклад:
Введення > 71
Введення > 52
Вивід < 8 425
( рядок виводу - два шуканих числа, розділені пробілом )
Обмеження: числа не більш 10000.
Задача 2
( запропонована міністерством оборони)
Код задачі Military
Команда новобранців прибула в частину. Сержант велів їм вишикуватися в колону
по одному для руху маршем у лазню. Новобранці, не маючи
належних навичок, вишикувалися не по зросту, а як кому до душі припало.
Особливо обурило сержанта те, що в колоні проглядалися ділянки,
що явно кидають виклик усім статутам стройової служби - новобранці стояли в строю
так, що слідом за низеньким знаходився високорослий, за ним - нижчий зростом, а
потім знову вище, і т.д., або навпаки - слідом за високим - нижчий нього,
потім знову вище, потім - нижчий… Обурення сержанта стимулювало
концентрацію математичних спроможностей і він відразу велів вийти зі строю тим
новобранцям, що утворили самий довгий "зубчатий" ланцюжок.
Скільки чоловік вийшло зі строю?
Введення-вивід:
Ви вводите з клавіатури в першому рядку кількість новобранців, а в другому - зріст кожного. Числа розділені пробілами.
Ви виводите на екран число солдат, що вийшли зі строю
Приклад
Введення>20
Введення> 4 5 2 3 1 6 7 8 3 9 4 6 2 6 7 8 4 8 8 8
Вивід< 8
Обмеження:
Новобранців не більш 10000, зріст їх вимірюється натуральними числами не більш 255.
Якщо декілька ланцюжків мають максимальну довжину, то зі строю виходить тільки один з них.
Задача 3.
(запропонована дільничним міліціонером)
Код задачі Sheriff
У минулому - колгоспник, а тепер землевласник Наливайко одержав сертифікат на володіння землею. Сільрада видала йому схему ділянки. На схемі будинок мав координати в декартовой системі, а ділянка являла собою окружність відомого радіуса, центр котрої, природно, збігався з положенням будинку. Усе було б нічого, якщо б сусідка Наливайко, знатна праля, не мала дивної навички натягати мотузки для сушіння білизни не дивлячись ні на які межі, прив'язуючи кінці мотузки до чого завгодно. І ще одна дивина була в пралі - мотузки завжди були натягнуті паралельно якийсь з осей тієї самої системи координат. Наливайко звернувся до мене зі скаргою, що мотузка проходить через його землеволодіння. Відтинок мотузки якої довжини дійсно проходив через землі Наливайко, якщо відомі координати її початку і кінця в усе тій же системі координат?
Введення-вивід : у першому рядку введення - два дійсних числа, розділені пробілом - координати центру окружності,
у другому рядку - дійсний радіус окружності, у третьому - 4
дійсних числа,
розділені пробілом, - координати початку
(х1 , y1)
і кінця (х2, y2) мотузки. У рядку виводу ви виводите на екран результат із точністю до 2-х знаків.
Приклад:
Введення> 10.0 5.0
Введення> 5.0
Ввод> 3.0 8.0 12.0 8.0
Вивід< 6.00
Обмеження: координати і радіус по модулю не більш 1000. 00
Задача 4.
( надана управлінням зовнішньої розвідки )
Код задачі Spy
Шпигун, що давно був направлений у раніше ворожу, а тепер дружню країну, використовував для передачі повідомлень шифрувальну машинку, привезену із собою на початку кар'єри, а значить морально застарілу . Працював цей автомат так: у кожному слові повідомлення він змінював голосну букву на ланцюжок символів, що складається з цієї самої букви на початку, деякого кодового слова і знову цієї ж букви. Простий шифр, правда? Якщо врахувати, що машинка працювала тільки з малими буквами латинського алфавіту, секретне повідомлення "i like pivo" із використанням послідовності, що кодує
"qa" на батьківщині героя одержували у вигляді "iqai liqaikeqae piqaivoqao". Усе була прекрасно, поки машинка від старості не почала кодувати те саме повідомлення по декілька разів. Допоможіть криптографам, що отримали повідомлення, відправлене несправною машинкою, його прочитати.
Введення-вивід: У першому рядку вводите з клавіатури закодовану послідовність, у другий - послідовність, що кодує. У рядку виводу виводьте на екран шуканий рядок.
Приклад:
Введення >
iqaiqaqaaiqai liqaiqaqaaiqaikeqaeqaqaaeqae piqaiqaqaaiqaivoqaoqaqaaoqao
Введення > qa
Вивід> i like pivo
Обмеження: кодований рядок не довше 255 символів, кодове слово не довше 255 символів.
Задача 5.
Код задачі
Riddle
( надана читачем популярних книг по інформатиці)
Я загадаю ціле число з інтервалу [A,B]. Напишіть програму, що за мінімальне число запитань відгадає це число. Грати будемо так. Я повідомляю програмі числа A і B, програма виводить свою версію відповіді. Якщо вона менше задуманого мною, я повідомлю програмі про це числом -1, якщо більше - числом 1, а якщо вгадано - числом 0. Так буде продовжуватися, поки програма не вгадає число (природно, я буду грати чесно!). Постарайтеся, щоб ваша програма угадала число за мінімальне число ходів.
Введення-вивід : У першому рядку вводите з клавіатури два цілих числа через пробіл - межі діапазону. Програма на екран виводить свою версію в новому рядку. З нового рядка ви вводите "-1", "1" або "0" ( без лапок). Так продовжується до того моменту, поки число не буде вгадано (тобто ваша відповідь "0" повинна завершити роботу програми).
Приклад:
( я задумав число 2)
Введення > 1 6
Вивід< 3
Введення > 1
Вивід< 2
Введення > 0
Обмеження :
-100000O<=A<=B<=100000