Завдання ІІІ (міського) етапу 2002 року

1. Трикутник Рело, 16 балів
Трикутник Рело — опукла фіґура, обмежена трьома дугами по 60° кіл з однаковими радіусами a.

Завдання
Створіть програму figure.*, яка:

Наприклад, при введенні чисел

2 1

трикутник Рело буде повертатися на 15° щосекунди.

2. Послідовність, 12 балів
За допомогою таблиці задано перші 18 членів послідовності цілих чисел an.

n 123456789101112131415161718
an1214725811019 41322 71625 2

Наступні члени цієї послідовності задано такими рівностями:
a 3n = an,
a1 + 9n = 2a2 + 3na1 + 3n,
a2 + 9n = 5a2 + 3n – 4a1 + 3n,
a4 + 9n = 3a2 + 3n – 2a1 + 3n,
a5 + 9n = 6a2 + 3n – 5a1 + 3n,
a7 + 9n = 4a2 + 3n – 3a1 + 3n,
a8 + 9n = 7a2 + 3n – 6a1 + 3n.

Завдання
Створіть програму sequence.*, яка обчислює член послідовності за її номером.

Вхідні дані
Файл sequence.dat містить лише натуральне число n, яке має не більше, ніж 100 цифр.

Вихідні дані
Файл sequence.res має містити лише an.

Приклад

sequence.datsequence.res
215

3. Множники, 12 балів

Завдання
Створіть програму factor.*, яка розкладе многочлен з цілими коефіцієнтами на множники — многочлени з цілими коефіцієнтами, що вже неможливо розкласти на множники-двочлени з цілими коефіцієнтами. Розв'язання задачі не вимагає подання чисел масивами їхніх цифр, якщо на зберігання цілих чисел відведено 4 байти.

Вхідні дані
Вхідний файл factor.dat містить у вказаному порядку натуральне число n — степінь многочлена й (n + 1) ціле число — коефіцієнти многочлена в порядку спадання степеня від n до 0 включно, n < 100.

Вихідні дані
Перший рядок файлу factor.res містить знак старшого коефіцієнта многочлена та найбільший спільний дільник всіх його коефіцієнтів.

Кожний наступний рядок цього самого файлу містить у вказаному порядку такі цілі числа:

Починаючи з другого рядка factor.res, із зростанням номера рядка, третє число (старший коефіцієнт двочлена) не спадає. Для двочленів-дільників з однаковим старшим коефіцієнтом спочатку записуються дані про двочлен меншого степеня. Для двочленів-дільників одного степеня з однаковим старшим коефіцієнтом спочатку записуються дані про двочлен з від'ємним вільним членом (останнє число рядка). Дані про дільник многочлена, що не є двочленом (остача від ділення многочлена на всі його дільники-двочлени, враховуючи їх кратність), записують у останньому рядку.

Кожне число файлу factor.res має не більше двох цифр.

Приклад

factor.datfactor.res
7 -84 84 -133 196 -140 77 -35 7



-7
2 1 2 -1
1 2 3 0 1
1 3 1 0 1 -1

Математична довідка
Якщо нескоротний дріб p/q є коренем многочлена змінної x з цілими коефіцієнтами, то:

4. Спільний елемент, 15 балів

Завдання
Створіть програму common.*, яка знайде найменше натуральне число, що одночасно належить даним n нескінченним арифметичним проґресіям натуральних чисел.

Вхідні дані
Файл common.dat містить (2n + 1) невід'ємне ціле число. Перше число — n. В j-ій парі чисел після n (у вказаному порядку) — перший член j-ої проґресії та її різниця. Всі числа вхідного файлу не перевищують 10000, причому n < 100.

Вихідні дані
Файл common.res має містити лише шукане число. Якщо такого числа немає, то файл містить 0.

Приклад

common.datcommon.res
3 1 2 4 2 5 20
2 25 10 13 625

Математична довідка
Найбільший спільний дільник двох натуральних чисел — це найменше натуральне число, яке можна подати лінійною комбінацією даних чисел з цілими коефіцієнтами:

НСД(a, b) = min{ax + by > 0 | x, y — цілі}.

Всі такі лінійні комбінації ax + by кратні НСД(a, b).

5. Шашка на кубі, 14 балів
Поверхню куба відрізками, паралельними до ребер куба, поділено на квадратні клітини, довжина сторін яких у l (непарне натуральне число) разів менша за довжину ребра куба. Шашку пересувають за один хід з клітини на довільну суміжну з нею (що має з даною спільну сторону).

Завдання
Створіть програму draught.*, яка обчислить, скількома різними способами може шашка потрапити за m ходів з клітини в центрі однієї ґрані на клітину, розташовану в центрі суміжної ґрані.

Вхідні дані
Вхідний файл draught.dat містить натуральні числа l та m, де l < 52, m < 200.

Вихідні дані
Вихідний файл draught.res має містити ціле число — шукану кількість способів.

Приклад

draught.datdraught.res
3 31

6. Опiр, 31 бал
Сукупнiсть клем електричної схеми занумеровано натуральними числами в межах вiд 1 до n включно. Клеми з'єднано m опорами, величина кожного з яких в омах виражається невiд'ємним рацiональним числом.

Завдання
Створiть програму resistor.*, яка визначить опiр мiж клемами 1 i n.

Вхідні дані
Вхiдний файл resistor.dat мiстить у вказаному порядку натуральнi числа n i m, розташовані у межах вiд 1 до 2500 включно, i далi m четвiрок невiд'ємних цiлих чисел: два номера клем, чисельник i знаменник величини опору в омах, що їх з'єднує.

Вихідні дані
Єдиний рядок вихiдного файлу resistor.res мiстить нескоротний дрiб — шуканий опiр в омах. Якщо знаменник дробу дорiвнює 1, то дробову риску / i сам знаменник не записувати. Якщо опiр нескiнчений, тобто немає послiдовностi опорiв, що сполучає клеми 1 i n, то файл RESISTOR.RES мiстить запис

Zero conductivity

Приклад

resistor.datresistor.res
3 3 1 2 2 1 2 3 7 1 2 3 6 168/13

Примітка. Для розв'язання задачi непотрiбно подавати числа масивами цифр або розв'язувати систему лiнiйних рiвнянь з кiлькiстю змiнних, що перевищує 50.

Фізична довідка
Опір послідовного з'єднання дорівнює сумі величин сполучених опорів. Якщо у паралельному з'єднанні хоча б один з опорів дорівнює 0, то й опір всього з'єднання дорівнює 0. Інакше опір паралельного сполучення обернений до суми величин, обернених до сполучених опорів. У загальному випадку потрібно користуватися правилами Кіркгофа.

  1. Алґебрична сума струмів у кожному вузлі розгалуження провідників (клеми), дорівнює 0 (струми, спрямовані у вузол, вважають додатними, спрямовані від вузла — від'ємними.

  2. У будь-якому замкнутому контурі алґебрична сума падінь напруг дорівнює сумі електрорушійних сил у цьому контурі.

Для визначення опору складного ланцюга, описаного в умові задачі, потрібно провести уявний експеримент — приєднати до клем 1 і n джерело напруги E і визначити струми через всі опори:

При складанні рівнянь потрібно враховувати напрями струмів, які невідомі. Якщо розв'язок для якогось струму буде від'ємним, це означає, що його напрям протилежний до обраного.