아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

유리 함수 근사

시간 제한1초메모리 제한128 MB

난이도

아직 분류되지 않았습니다

정답자
아직 제출이 없습니다

문제

함수 f(x)f(x)는 차수가 nn인 다항식 p(x)p(x)로 근사할 수 있다. p(x)p(x)의 계수를 f(x)f(x)의 멱급수 전개(x=0x = 0 근방)의 앞쪽 계수와 일치시키면 된다. 예를 들어,

11−x≈1+x+x2+⋯+xn\frac{1}{1-x} \approx 1 + x + x^2 + \cdots + x^n

이다.

그러나 다항식은 '얌전한' 함수여서, 특이점을 가진 함수처럼 나쁘게 행동하는 함수를 근사할 때는 잘 맞지 않는다. 이를 해결하기 위해 두 다항식 p(x)p(x), q(x)q(x)의 비 p(x)/q(x)p(x)/q(x) 형태의 유리 함수로 근사할 수 있다.

mm, nn과 f(x)f(x) 멱급수의 처음 m+nm+n개 계수가 주어진다. 차수가 각각 최대 m−1m-1, n−1n-1인 두 다항식 p(x)p(x), q(x)q(x)를 구하라. 단, q(x)f(x)−p(x)q(x)f(x) - p(x)의 멱급수 전개에서 처음 m+n−1m+n-1개 계수가 모두 00이고 xm+n−1x^{m+n-1} 항의 계수가 11이어야 한다. 즉,

q(x)⋅f(x)−p(x)=xm+n−1+⋯q(x)\cdot f(x) - p(x) = x^{m+n-1} + \cdots

를 만족해야 한다. 여기서 ⋯\cdots는 차수가 m+n−1m+n-1보다 높은 항들을 뜻한다. 이렇게 하면 f(x)f(x)를 p(x)/q(x)p(x)/q(x)로 근사할 수 있다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 케이스는 한 줄에 다음 형식으로 주어진다.

m n f0 f1 ... f(m+n-1)

여기서 fif_i는 f(x)f(x)의 멱급수 전개에서 xix^i의 계수이다. 1≤m1 \le m, 1≤n≤41 \le n \le 4, 2≤m+n≤102 \le m+n \le 10이며, 모든 fif_i는 ∣fi∣≤5|f_i| \le 5인 정수이다. 입력의 끝은 m=n=0m = n = 0인 줄로 표시되고, 이 줄에는 ff의 계수가 없다. 주어지는 입력에 대한 해는 유일하다고 가정해도 된다.

출력

각 테스트 케이스마다 두 줄을 출력한다. 첫째 줄에 다항식 p(x)p(x)를, 둘째 줄에 q(x)q(x)를 출력한다.

다항식 p(x)p(x)는 ii의 오름차순으로 정렬된 쌍 (pi,i)(p_i, i)의 목록으로 출력한다. 여기서 pip_i는 xix^i 항의 00이 아닌 계수이다. 00이 아닌 각 계수 pip_i는 a/ba/b 꼴로 출력하되 b>0b > 0이고 a/ba/b는 기약분수여야 한다. 또한 b=1b = 1이면 aa만 출력한다(bb는 생략). p(x)=0p(x) = 0이면 (0,0)(0,0)만 있는 줄을 출력한다. 목록의 쌍들은 공백 하나로 구분한다.

다항식 q(x)q(x)도 같은 방식으로 출력한다. 케이스와 케이스 사이에는 빈 줄을 하나 넣는다.

힌트

다항식 p(x)p(x)는 p0+p1x+p2x2+⋯p_0 + p_1 x + p_2 x^2 + \cdots의 형태로 쓸 수 있으며, q(x)q(x)도 마찬가지이다. 이 문제에서 두 다항식의 계수 pip_i, qiq_i는 유리수이다.

f(x)f(x)의 x=0x = 0에 대한 멱급수 전개는 f0+f1x+f2x2+⋯f_0 + f_1 x + f_2 x^2 + \cdots로 쓸 수 있으며, 이 문제에서 fif_i는 정수이다.

예제2

  1. 예제 1

    입력
    2 2 0 0 1 1
    4 2 1 2 3 4 5 -2
    1 1 2 3
    1 4 -5 0 -2 1 -2
    0 0
    
    예상 출력
    (0,0)
    (1,1)
    
    (-4/33,0) (-1/11,1) (-2/33,2) (-1/33,3)
    (-4/33,0) (5/33,1)
    
    (2/3,0)
    (1/3,0)
    
    (25/6,0)
    (-5/6,0) (1/3,2) (-1/6,3)
    
  2. 예제 2

    입력
    1 1 1 2
    0 0
    
    예상 출력
    (1/2,0)
    (1/2,0)