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

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

레이저

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

요약
원점에서 쏘는 최대 K개의 광선이 같은 선분을 두 번 맞히지 않으면서 1사분면의 선분을 가장 많이 맞히는 개수를 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 기하, 구간, 정렬
정답자
아직 제출이 없습니다

문제

재현이가 얼마 전 게임을 하나 만들었다. 이름은 "유재민"이고, 주인공도 유재민이다.

유재민은 원점 (0,0)(0, 0)에서 레이저 빔을 쏜다. 빔은 원점에서 출발해 플레이어가 정한 방향으로 뻗어 나가는 반직선이다. 목표는 좌표평면에 놓인 선분을 최대한 많이 맞히는 것이다. 유재민은 레이저 빔을 최대 KK번 쏠 수 있고, 빔이 선분의 끝점만 지나가도 맞힌 것으로 판정한다.

재현이가 미처 처리하지 못한 부분이 하나 있다. 이미 맞힌 선분을 또 맞히면 게임이 크래시 된다. 처음에는 당황했지만 이런 게임도 나름 재미있겠다 싶어서, 재현이는 최적으로 플레이해 보기로 했다. 이미 맞힌 선분을 다시 맞히지 않으면서 맞힐 수 있는 선분의 최대 개수를 구하자.

입력

첫째 줄에 KK와 NN이 주어진다. (1≤K≤1001 \le K \le 100, 1≤N≤500 0001 \le N \le 500\,000)

다음 NN개의 줄에 선분이 하나씩 x1x_1, y1y_1, x2x_2, y2y_2 형태로 주어진다. (1≤x1,y1,x2,y2≤1 000 0001 \le x_1, y_1, x_2, y_2 \le 1\,000\,000) 점 (x1,y1)(x_1, y_1)과 점 (x2,y2)(x_2, y_2)를 잇는 선분이라는 뜻이다.

출력

이미 맞힌 선분을 다시 맞히지 않는다는 조건 아래, 레이저 빔을 최대 KK번 쏘아서 맞힐 수 있는 선분의 최대 개수를 출력한다.

힌트

예제2

  1. 예제 1

    입력
    3 6
    1 2 2 4
    3 1 5 1
    3 2 2 3
    3 3 3 4
    2 2 2 2
    6 1 3 5
    
    예상 출력
    5
    
  2. 예제 2

    입력
    2 3
    1 1 1 3
    1 1 1 1
    1 3 1 3
    
    예상 출력
    2