원점에서 출발한 영혼이 직사각형 안을 속력 1 이하로 움직이고, 정해진 직선을 따라 이동하는 N개의 점 중 영혼이 접촉할 수 있는 최대 개수를 구한다.
어려움9기하동적 계획법비트 연산수학아직 제출이 없습니다시간 제한1초메모리 제한512 MB플라위: 반가워! 내 이름은 플라위, 노란 꽃 플라위야! 이 지하세계는 처음이지? 이런, 정신이 하나도 없겠구나. 여기가 어떤 곳인지 누군가 알려줘야겠는걸. 작고 힘없는 나라도 알려줄게. 준비됐니? 간다!

플라위: 하트 모양이 보이지? 저게 네 영혼이야. 네 존재의 정수지! 네 영혼은 약하지만, LV를 많이 올리면 강해질 수 있어. LV가 뭐냐고? 바로 LOVE지, 물론! LOVE가 좀 필요한 것 같은데, 그렇지?
플라위: 걱정하지 마, 내가 좀 나눠줄게! 작고 하얀 친절 알갱이로 서로 나누는 거야. 움직여! 친절을 최대한 많이 받는 거야!

플라위가 친절 알갱이 N개를 뿌렸다. 알갱이는 모두 속력 1로 직선을 따라 움직인다. 당신의 영혼은 시각 0에 원점 (0,0)에 있고, 원하는 방향으로 속력 1 이하로 움직일 수 있다. 속력은 1이나 0.314처럼 아무 값이나 될 수 있고, 그 자리에 멈춰 있어도 된다. 다만 영혼은 −XM≤x≤XM, −YM≤y≤YM을 만족하는 직사각형 영역을 벗어날 수 없다.
친절 알갱이는 영혼과 닿는 순간 사라지며, 그 알갱이는 모은 것으로 친다. 따라서 최대 N개까지 모을 수 있다. 영혼과 알갱이는 모두 점으로 본다. 알갱이의 정보가 주어질 때, 모을 수 있는 친절 알갱이의 최대 개수를 구하는 프로그램을 작성하시오.
첫째 줄에 친절 알갱이의 개수 N과 영혼이 움직일 수 있는 범위를 나타내는 두 정수 XM, YM이 주어진다 (1≤N≤18, 1≤XM,YM≤500).
둘째 줄부터 N개의 줄에 알갱이 하나의 정보를 나타내는 정수 네 개 Xst, Yst, Xto, Yto가 주어진다 (−1000≤Xst,Yst,Xto,Yto≤1000). 이 알갱이는 시각 0에 (Xst,Yst)에 있고 (Xto,Yto)를 향해 직선으로 움직이며, (Xto,Yto)를 지난 뒤에도 같은 방향으로 계속 움직인다. (Xst,Yst)와 (Xto,Yto)는 서로 다른 점이고, (Xst,Yst)가 원점인 경우는 없다.
첫째 줄에 모을 수 있는 친절 알갱이 개수의 최댓값을 출력한다.