만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

빠른 당구

시간 제한2초메모리 제한512 MB

요약
정사각형 당구대에서 공이 구멍에 들어가는 경로를 세되, 가장자리에서 튕긴 횟수 k마다 0부터 n까지 개수를 구합니다.
난이도

보통10점 중 7점

유형
수학, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

사각형 모양의 당구대가 좌표평면 위에 놓여 있고, 꼭짓점은 (L,L)(L, L), (L,−L)(L, -L), (−L,L)(-L, L), (−L,−L)(-L, -L)이다. 당구공은 (x1,y1)(x_1, y_1)에 멈춰 있고, 구멍은 (x2,y2)(x_2, y_2)에 있다. 공과 구멍은 모두 당구대의 가장자리에 있지 않으며, 서로 다른 위치에 있다.

공을 치면 공은 직선으로 움직이기 시작한다. 공이 가장자리에 닿으면 입사각과 반사각이 같도록 튕겨 나가고, 이후에도 직선으로 계속 움직인다. 공은 네 꼭짓점 중 하나 또는 구멍에 도달해야 멈춘다.

말나르 씨는 공을 얼마나 세게 쳤는지 그 밖의 누구도 공의 경로를 볼 수 없었다. 확실히 알려진 사실은 공이 구멍에 들어갔다는 것뿐이다. 살아남은 목격자들은 타격음의 주파수로 미루어 보아, 공이 경로 중 가장자리에서 최대 nn번 튕겼다고 추정했다.

그림은 k=1k = 1인 첫 번째 테스트 케이스에서 가능한 모든 경로를 보여 준다.

분석가들은 공이 어떤 경로로 움직였을 수 있는지 알고 싶어 한다. 각 정수 0≤k≤n0 \le k \le n에 대해, 공이 구멍에 들어가기 전까지 가장자리에서 정확히 kk번 튕기는 서로 다른 경로의 수를 구하라. 모든 답은 32비트 자료형에 들어가는 유한한 정수임을 증명할 수 있다.

입력

첫 줄에는 정수 LL (2≤L≤10000002 \le L \le 1000000)과 nn (1≤n≤5001 \le n \le 500)이 주어진다. 둘째 줄에는 정수 x1,y1,x2,y2x_1, y_1, x_2, y_2 (−L<x1,y1,x2,y2<L-L < x_1, y_1, x_2, y_2 < L)가 주어진다. (x1,y1)≠(x2,y2)(x_1, y_1) \ne (x_2, y_2)이다.

출력

n+1n + 1개의 정수를 공백으로 구분하여 출력한다. kk번째 수(kk는 0부터 nn까지)는 공이 구멍에 도달하기 전까지 가장자리에서 정확히 kk번 튕기는 서로 다른 경로의 수이다.

예제2

  1. 예제 1

    입력
    2 1
    -1 1 -1 -1
    
    예상 출력
    1 3
    
  2. 예제 2

    입력
    4 3
    0 0 1 1
    
    예상 출력
    1 4 6 12