Заочна олімпіада з інформатики Хмельницька область 2008 - 2009 Другий тур 10.11.2008 - 21.11.2008 Тур проводять: Вапнічний Сергій Дмитрович, вчитель Старокостянтинівської гімназії Попик Андрій Васильович, викладач Хмельницького національного Університету Увага! Під час залікових турів розв'язки дозволяється надсилати тільки один раз за вказаними адресами.  Розв'язки надсилати одним листом за двома адресами vapnichny@rambler.ru та popyk@ukr.net до 24:00 21.11.2008 включно. Копію: zoi2008@i.ua Тема листа: ZOI_2008_2 Питання щодо умов задач t2z1 та t2z2 можна надсилати на адресу vapnichny@rambler.ru до 20.11.2008 включно. Питання щодо умов задач t2z3 та t2z4 можна надсилати на адресу popyk@ukr.net до 20.11.2008 включно. На перевірку задач буде відведено час більший за час роботи авторських розв'язків. ====================================================================================================== Задача t2z1. Для забезпечення кормами кроликів фермер Дієтенко придбав зернову культуру у паспорті господарської придатності якої були записані такі дані: N – зернин мають масу М г, чистота насіння становить К%, схожість С% та вказано, що на одному гектарі має рости Р паростків даної культури. Написавши листа фермеру Вампірову із проханням допомогти встановити необхідну кількість зерна для засівання Н гектарів площі при таких даних: N=1000, М=40, К=97, С=93, Р=6000000, Н=100 він отримав таку відповідь: 26604.589 кг. Напишіть програму, яка автоматизує процес обчислення. Технічні умови: Вхідні дані: у єдиному рядку текстового файлу ekonom.in через пропуск записані натуральні числа: N, М, К, С, Р, Н Вихідні дані: у єдиний рядок текстового файлу ekonom.out записати знайдену масу зерна, виражену у кілограмах з точністю до грама. Приклад вхідних даних: 1000 40 97 93 6000000 100 Приклад вихідних даних: 26604.589 ====================================================================================================== Задача t2z2. У фермера Дієтенка сталася прикра недоречність: вийшов з ладу годинник, який так довго йому слугував. Тепер час він міг визначати тільки за метрономом. Робота фермера вимагає точнішого виміру часу. Метроном він може налаштувати на К ударів за Т секунд. Як знаючи кількість N ударів визначити час у годинах, хвилинах та секундах. Вхідні дані: у єдиному рядку текстового файлу time.in записані через пропуск натуральні числа N, Т, К. Вихідні дані: у єдиний рядок текстового файлу time.out записати результат у вигляді: h:годиниm:хвилиниs:секунди Приклад вхідних даних: 10013 1 2 Приклад вихідних даних: h:1m:23s:26 Приклад вхідних даних: 10013 2 1 Приклад вихідних даних: h:5m:33s:46 ====================================================================================================== Задача t2z3. "Судоку" Поле для гри в судоку має розмір 9х9 клітинок і умовно розбите на 9 квадратів розміром 3х3. Кожна клітинка є або пустою, або містить число від 1 до 9. Приклад: 389|7..|2.. 672|.5.|.1. .14|6.9|..3 ------------ 23.|5..|871 85.|.37|.49 497|81.|3.5 ------------ .65|482|13. 1.3|.7.|46. 74.|1.3|59. Вам необхідно розставити в пусті клітинки числа від 1 до 9 так, щоб 1) в кожному рядку числа не повторювались 2) в кожному стовпчику числа не повторювались 3) в кожному з 9-ти умовних квадратів числа не повторювались Для вищенаведеного прикладу відповідь наступна: 389|741|256 672|358|914 514|629|783 ------------ 236|594|871 851|237|649 497|816|325 ------------ 965|482|137 123|975|468 748|163|592 Вхідні дані: У стандартному вхідному потоці записані 9 рядків по 9 чисел.(числа розділені пропусками). Пуста клітинка позначена числом 0. Нулів (пустих клітинок) буде не більше ніж 29 Вихідні дані: у стандартний вихідний потік запишіть відповідь до заданого судоку - 9 рядків по 9 чисел в кожному (розділені пропусками!!!) Приклад вхідних даних: 3 8 9 7 0 0 2 0 0 6 7 2 0 5 0 0 1 0 0 1 4 6 0 9 0 0 3 2 3 0 5 0 0 8 7 1 8 5 0 0 3 7 0 4 9 4 9 7 8 1 0 3 0 5 0 6 5 4 8 2 1 3 0 1 0 3 0 7 0 4 6 0 7 4 0 1 0 3 5 9 0 Приклад вихідних даних: 3 8 9 7 4 1 2 5 6 6 7 2 3 5 8 9 1 4 5 1 4 6 2 9 7 8 3 2 3 6 5 9 4 8 7 1 8 5 1 2 3 7 6 4 9 4 9 7 8 1 6 3 2 5 9 6 5 4 8 2 1 3 7 1 2 3 9 7 5 4 6 8 7 4 8 1 6 3 5 9 2 ====================================================================================================== Задача t2z4. "Спекулянт" З дитинства нам розповідали (а вам, учням, і досі розповідають), що наш добробут залежить від того, наскільки ми будемо працювати. Це була теорія, а практика показала, що наш добробут залежить не від інтенсивності нашої праці, а від курсу долара чи стрибків цін на нафту на світовому ринку. Розглянемо валютного спекулянта на ім'я Баксік, який намагається заробити на економічній кризі. В його країні є N міст в яких діють обмінні пункти валют. Баксік аналітично прорахував які мають бути курси валют у цих містах на D днів вперед. Він також має інформацію про ціни проїзду по кожній з доріг між містами (між кожними 2 містами є дорога). За законами його країни, одна особа в день може здійснити лише одну валютну операцію. Тому баксік може здійснити обмін лише в одному місті країни, за один день. На початку економічної кризи, баксік має UAH гривень, і USD доларів. За день він може переїхати в будь-яке інше місто і здійснити там обмін валют, або лишитись у місті і здійснити обмін валют, або лишитись у місті і не здійснювати обміну валют. Вам необхідно порахувати скільки максимально грошей у гривнях може назбирати Баксік через D днів. Вхідні дані: У першому рядку стандартного вхідного потоку записані числа N, D, UAH, USD. (1<=D<=100), (1<=N<=100) , (0<=UAH<=10000) , (0<=USD<=10000) Наступні N рядків містять по N чисел і описують ціни проїзду по відповідним дорогам. (число в i-му рядку і j-му стовпчику показує ціну переїзду по прямій дорозі з міста i в місто j) Кожен з наступних N рядків містить по D пар дійсних чисел - курси валют для відповідних міст на всі дні кризи. Перше число з кожної пари показує за скільки гривень куплять за 1 долар, друге число з пари показує - за скільки гривень продадуть 1 долар. Друге число в парі завжди не менше від першого. Баксік на початку кризи знаходиться в місті з номером 1. Вихідні дані: У перший рядок запишіть максимальну суму в гривнях (округливши до двох знаків після коми), яку може назбирати Баксік в кінці кризи. В кожному з наступних D рядків запишіть інформацію про діяльність Баксіка за кожний день в наступному форматі: перше число рядка містить номер міста в яке перемістився (чи в якому лишився) Баксік. друге число показує кількість доріг - R - яку він проїхав для цього переходу. Наступні R чисел показують номера міс через які він проїжджав (в порядку проїзду, не зазначаючи першого міста). Останні два числа показують скільки гривень та доларів він продав у цьому місті. Приклад вхідних даних: 3 1 100 100 0 3 1 3 0 1 1 1 0 5.00 6.00 7.00 8.00 5.00 6.00 Приклад вихідних даних (увага, приклад може бути не оптимальним!!!): 798.00 2 2 3 2 0 100 Оцінювання: ваша програма принесе вам тим більше балів, чим більше грошей назбирає ваш Баксік :) в порівнянні з іншими... Примітка: Обмін завжди здійснюється тільки до копійок (центів). Тобто якщо 1 долар продається за 3 гривні, то Баксік маючи 100 гривень може придбати лише 33.33 долари, заплативши при цьому 99.99 гривень, а одну копійку вже розміняти не можемо. Питання з приводу правилах діяльності валютного ринку в умовах даної задачі приймаються за адресою popyk@ukr.net ======================================================================================================= Приклад листа другого туру учасника з кодом 963. Кому: vapnichny@rambler.ru, popyk@ukr.net Копія: zoi2008@i.ua Тема: ZOI_2008_2 Зміст листа:  Прошу перевірити розв'язки задач другого туру. Учасник з кодом 963. (Не можна підписувати листи прізвищами) Вкладка: файли U963T2Z1.PAS, U963T2Z2.PAS, U963T2Z3.PAS, U963T2Z4.PAS