XV обласна олімпіада з інформатики (Хмельницька обл.) 10 лютого 2001 року Тур № 1 Завдання 1. Дайте письмові відповіді на поставлені запитання. (тест на 10 запитань) Завдання 2. Складіть програми для розв'язання задач, дотримуючись вимог. Задача 1. БІКВАДРАТНЕ РІВНЯННЯ. Складіть програму BIKVAD.PAS (або BAS чи СРР)знаходження дійсних коренів біквадратного рівняння a*x^4+b*x^2+c=0. Ваша програма повинна прочитати вхідні дані із текстового файла BIKVAD.DAT і вивести чотири корені або текст N0, якщо відповідний корінь відсутній, у текстовий файл BIKVAD.SOL. Вхідні дані: у чотирьох рядках файла BIKVAD.DAT відповідно записані точність обчислення, виражена кількістю десяткових знаків k, коефіцієнти а,Ь,с. Вихідні дані: у чотири рядки файла BIKVAD.SOL вивести значення коренів у порядку зростання або текст N0, якщо відповідний корінь відсутній (на першому місці ставити числа, а за ними текст). Приклад вхідних і вихідних даних. BIKVAD.DAT 4 1 -13 36 BIKVAD.SOL -3.0000 -2.0000 2.0000 3.0000 Задача 2. ФІРМА. З м.Кам'янця-Подільського до М.Славути вирушили дві супер вантажівки за виробами на фірму "Олімпієць". Оплата праці водіїв пропорційна вантажу, який водії перевозять своїми вантажівками. Відомо, що на фірмі "Олімпієць" виготовлено N виробів, вага кожного з яких А1, A2,..., АN . Потрібно скласти програму FIRMA.PAS (FIRMA.BAS, FIRMA.CPP) завантаження обох вантажівок, щоб загальні маси вантажів обох вантажівок були максимально близькими. Вантажопід'йомність вантажівок дозволяє забрати виготовлену продукцію. Ваша програма повинна прочитати дані з вхідного файлу FIRMA.DAT, а результат вивести у вихідний файл FIRMA.SOL Вхідні дані: У першому рядку текстового файла FIRMA.DAT записане натуральне число N - кількість виробів; у наступних N рядках записані дійсні числа - маса і-го виробу в центнерах. Вихідні дані: У єдиному рядку текстового файла FIRMA.SOL мають бути записані через пропуск загальні маси виробів, які завантажені на першу та другу вантажівки. Приклад вхідних і вихідних даних. FIRMA.DAT . 4 3.15 6.56 4.12 5.6 FIRMA.SOL 9.71 9.72 Задача З. Листки паперу. Прямокутні листки на поверхні квадратного столу (розміром 100х100) розташовані так, що їх сторони лежать паралельно сторонам столу. Листки можуть перекриватись, але немає повністю закритих листків і таких, що дотикаються сторонами. Написати програму, яка визначає мінімально можливу кількість листків паперу, що забезпечують розташування згідно заданих координат видимих кутів листків. Вхідні дані. У першому рядку вхідного потоку задано кількість видимих кутів (< 20). У кожному наступному рядку (через пропуск) - пара координат, що визначає один видимий кут (X та У). Результат. Вивести у вихідний потік кількість листків. Тур № 2 11 лютого 2001 року Задача 1. КОРЕКТОР. При роботі з текстовим редактором використовують операції вставки символу в рядок, знищення символу та заміни символу. Назвемо ці операції редагування елементарними. Ви повинні скласти програму CORECT.PAS (або BAS чи СРР), яка прочитає з текстового файла CORECT.DAT два символьні рядки S1 та S2, підрахує найменшу кількість елементарних операцій редагування, які необхідно виконати, щоб рядок S1 перетворити в рядок S2 і результат виведе в єдиний рядок текстового файла CORECT.SOL. Вхідні дані: у першому рядку файла CORECT.DAT записаний символьний рядок S1, у другому рядку - символьний рядок S2. Вихідні дані: у текстовий файл CORECT.SOL слід записати єдине число - найменшу кількість елементарних операцій редагування. Приклад вхідних і вихідних даних. CORECT.DAT принтер спринтер CORECT.SOL 1 Задача 2. РОБІНЗОН КРУЗО. Після того як Робінзон Крузо побудував свого човна, він вирішив дослідити найближчі острови архіпелага з N островів. Метою своєї подорожі він вибрав N-ий острів, сподіваючись, що знайде на ньому туземне поселення і британського консула. Остерігаючись тропічних штормів, він вирішив не відпливати далеко від берега і перепливати з одного острова на інший, тільки якщо відстань між берегами цих островів (і, відповідно, плавання вдалині від берега) не перевищує D кілометрів. Для спрощення задачі всі острови будемо рахувати кругами з різним радіусом. Напишіть програму KRUSO.PAS (BAS, СРР), яка допоможе Робінзону визначити, чи зможе він добратися до N-го острова. У вхідному текстовому файлі KRUSO.DAT в першому рядку записані два цілих числа N (2<=N<=100) і D (5<=D<=50), розділених одним пропуском - число островів і максимальна відстань, на яку відважиться здійснити плавання Робінзон. В наступних N рядках знаходиться по три цілих числа Хі, Yi, Ri (0<=Xi, Yi <=1000, K=Ri<=50, l<=i<=N) через один пропуск - координати і радіус острова. Перший острів є стартовим, а N-ий - метою подорожі. У вихідний текстовий файл KRUSO.SOL вивести YES, якщо Робінзон зуміє добратися до мети, або N0, якщо мети неможливо досягнути для заданого обмеження D. Приклад вхідних і вихідних даних. KRUSO.DAT 59 5 25 3 8 12 2 15 15 5 30 15 3 35 5 4 KRUSO.SOL YES Задача 3. ЦИФРИ. У першому рядку вхідного потоку записане десяткове число N (2