Раціональне наближення#6075

Раціональне наближення

1 секунда
64 мегабайти
Складна

Поліном степеня може бути використаний для апроксимації функції , підбираючи коефіцієнти так, щоб вони відповідали першим коефіцієнтам степеневого ряду функції (розкладеної навколо x = 0). Наприклад,

На жаль, поліноми не завжди добре підходять для апроксимації функцій, які мають особливості. Щоб вирішити цю проблему, можна використовувати раціональні функції виду p(x)/q(x), де і є поліномами. Вас попросила Машина Апроксимаційних Обчислень вирішити цю задачу, щоб вони могли інтегрувати ваше рішення у своє програмне забезпечення для апроксимаційних обчислень.

Дано , і перші m+n коефіцієнтів степеневого ряду функції . Потрібно обчислити два поліноми і степенів не більше m-1 і n-1 відповідно, такі, що степеневий ряд розкладу q(x) \cdot f(x) - p(x) має як свої перші m+n-1 коефіцієнтів, і як свій коефіцієнт, що відповідає члену x^{m+n-1}. Іншими словами, ми хочемо знайти і такі, що

де ... містить члени з степенями вищими за m+n-1. З цього може бути апроксимована як p(x)/q(x).

Фонові Визначення

Поліном степеня може бути записаний як p_0 + p_1x + p_2x^2 + \ldots + p_nx^n, де p_i є цілими числами в цій задачі.

Степеневий ряд розкладу навколо може бути записаний як f_0 + f_1x + f_2x^2 + \ldots, де f_i є цілими числами в цій задачі.

Вхідні дані

Вхід складається з кількох випадків. Кожен випадок задається на одному рядку у формі f_0 f_1 f_{m+n-1}, де f_i є коефіцієнтом x^i у степеневому ряді розкладу . Ви можете припустити, що 1 \le m, 1 \le n \le 4, 2 \le m+n \le 10, і f_i є цілими числами такими, що |f_i| \le 5. Кінець вводу позначено рядком, що містить m = n = 0, і без коефіцієнтів для . Ви можете припустити, що існує унікальне розв'язання для даного вводу.

Вихідні дані

Для кожного тестового випадку виведіть два рядки виходу. Виведіть поліном на першому рядку, а потім на другому рядку. Поліном слід вивести як список пар (p_i, i), розташованих у порядку зростання , так що p_i є ненульовим коефіцієнтом для члена x^i. Кожен ненульовий коефіцієнт p_i слід вивести як , де b > 0 і є коефіцієнтом, вираженим у нескоротному вигляді. Крім того, якщо b = 1, то виведіть лише (і опустіть ). Якщо p(x) = 0, виведіть рядок, що містить лише . Розділіть пари у списку одним пробілом. Поліном слід вивести таким же чином. Вставте порожній рядок між випадками.

Приклади

Приклад 1

Loading
Loading