1. Сновида (16 балів)
У президента Першого нацiонального банку майора Томаса Б. Кiнгмена (героя оповiдання О'Генрi «Товаришi iз Сан-Розарiо») з'явилася шкідлива звичка щоночi перекладати однаковим чином вмiст сейфiв, у яких клiєнти зберiгають свої коштовностi.
Завдання
Створiть програму sleep.*, яка допоможе вирахувати, через скiльки дiб всi коштовностi вперше повернуться на свої мiсця.
Вхідні дані
Перший рядок файлу sleep.dat мiстить одне натуральне число n — кiлькiсть сейфiв банку, що неперевищує 15500. Далi (починаючи з другого рядка) файл мiстить послiдовнiсть n рiзних натуральних чисел в межах вiд 1 до n включно. k-ий член цiєї послiдовностi — номер сейфу, куди майор перекладає вмiст k-го сейфу першої ночi.
Вихідні дані
Єдиний рядок файлу sleep.res має мiстити запис у десятковiй системi числення шуканого числа дiб, що містить не більше, ніж 1000 цифр.
Приклад
sleep.dat | sleep.res |
---|---|
5 2 3 1 5 4 | 6 |
2. Корiнь квадратний (34 бали)
Щоб добути квадратний корiнь з десяткового дробу (наприклад, 65432.109), його запис розбивають праворуч i лiворуч вiд десяткової крапки на гранi, що мiстять по 2 цифри. У крайнiй лiвiй гранi може виявитися i одна цифра (6). Перша цифра кореня (2) знаходиться як найбiльша з усiх тих цифр, квадрати яких не перевищують першої гранi (6). Потiм вiд першої гранi вiднiмають квадрат першої цифри кореня (4), i до рiзницi приписують праворуч (зносять) наступну грань (54). Лiворуч вiд отриманого числа (254) пишуть подвоєну першу
цифру кореня (4), а за наступну цифру (5) беруть найбiльшу з тих, добуток яких на число, утворене приписуванням її до подвоєної першої цифри праворуч, (45 ∙ 5=225) не перевищує результату приписування до попередньої рiзницi вiдповiдної гранi (254). Цю цифру (5) записують пiсля першої цифри кореня i т.д. Десяткова крапка у коренi ставиться тодi, коли зноситься перша грань праворуч вiд десяткової крапки числа.
Завдання
Створiть програму root.*, яка вираховує корiнь квадратний додатного десяткового дробу.
Вхідні дані
Єдиний рядок вхiдного файлу root.dat мiстить у вказаному порядку скiнченний або перiодичний додатний десятковий дрiб (всього — до 1000 символiв разом з десятковою крапкою) a та натуральне число n, яке не перевищує 100.
Вихідні дані
Єдиний рядок файлу root.res має мiстити подання кореня квадратного а скiнченним чи перiодичним десятковим дробом, якщо це можливо, iнакше — корiнь квадратний числа a з недостачею з точнiстю до n цифр пiсля десяткової крапки.
Приклади
root.dat | root.res |
---|---|
25 6 | 5 |
0.69(4) 5 | 0.8(3) |
65432.109 4 | 255.7970 |
3. Термостат (12 балів)
Фізична система не обмінюється енергією з навколишнім середовищем. Спочатку система містить лише лід і рідкий свинець.
Завдання
Створіть програму termo.*, яка визначить кінцевий стан системи.
Вхідні дані
Файл termo.dat містить у вказаному порядку 4 дійсних числа, які описують початковий стан: маса (в кг) і температура (у градусах Цельсія) льоду, маса (в кг) і температура (у градусах Цельсія) свинцю. Абсолютні величини всіх чисел менші за 999.
Вихідні дані
Єдиний рядок termo.res має містити у вказаному порядку 6 дійсних чисел: температуру кінцевого стану у градусах Цельсія, маси у кілограмах льоду, води, пари, твердого і рідкого свинцю. Формат 8:3, тобто на кожне число відводиться 8 позицій, 3 позиції на цифри після десяткової крапки, причому остання позиція заповнена.
Приклад
root.dat | root.res |
---|---|
555 -5 444 444 | 0.000 431.507 123.493 0.000 444.000 0.000 |
Фізична довідка
Енергія системи, що не взаємодіє з навколишнім середовищем, стала.
Для нагрівання чи охолодження однорідної речовини маси m на температуру dt потрібно відповідно витратити чи відвести енергію cm dt, де c — питома теплоємність у Дж/кг град для твердого (135) й рідкого (318) свинцю, льоду (2100), води (4200) чи пари (214000).
Для переведення однорідної речовини маси m з одного агрегатного стану в інший за сталої температури (0°C для плавлення льоду, 100°C для пароутворення води, 327,4°C для плавлення свинцю) потрібно витратити або відвести енергію ml, де l — питома теплота плавлення у Дж/кг льоду (332400) чи свинцю (24300) або питома теплота пароутворення води (2256700).