가지 소환 마법
시간 제한4초메모리 제한1024 MB
N개의 3차원 정수 점에서 보존 변환으로 정다각형이 되는 M개의 점을 골라, N과 M의 곱이 최대가 되는 값을 구합니다.
문제
한국가지협회는 질 좋은 가지를 저렴한 가격에 공급하기 위해 여러 방면으로 연구하고 있습니다. 가지 소환 마법은 최근 개발된 방법으로, 적은 수의 가지를 제물로 바쳐 수많은 가지를 소환하는 마법입니다.
가지 소환 마법을 사용하려면 개의 가지를 공중에 띄우고 주문을 외워야 합니다. 가지의 위치를 3차원 좌표공간 위의 점으로 나타내고, 각 점에 적당한 함수 를 적용합니다. 함수 는 다음 조건을 만족해야 합니다.
- 의 정의역과 공역은 각 좌표가 모두 유리수인 점 의 집합입니다.
- 서로 다른 두 점 , 를 고르면 와 는 서로 다릅니다.
- 서로 다른 세 점 , , 가 한 직선 위에 있는 것과 , , 가 한 직선 위에 있는 것은 동치입니다.
- 서로 다른 두 점 , 와 서로 다른 두 점 , 에 대해, 직선 와 직선 가 평행한 것은 직선 와 직선 가 평행한 것과 동치입니다. 이면 직선 와 직선 는 평행합니다.
개의 모든 점에 를 적용한 뒤, 개의 점을 꼭짓점으로 하는 다각형이 정각형이 되도록 개의 점 중에서 적당한 개의 점을 고르면 개의 가지를 소환할 수 있습니다. () 단, 적당한 를 찾지 못하거나 적당한 개의 점을 고르지 못하면 소환이 실패합니다. 가지의 위치를 나타내는 개의 점이 주어질 때, 적절한 함수 와 개의 점을 단 한 번 골라 최대 몇 개의 가지를 소환할 수 있는지 알아내 봅시다.
입력
첫 번째 줄에 가지의 수 이 주어집니다. ()
다음 개 줄에 각각 가지의 위치를 나타내는 점의 좌표가 주어집니다. 번째 줄에는 번째 가지의 위치를 나타내는 점의 좌표 를 나타내는 정수 , , 가 공백으로 구분되어 주어집니다. ()
모든 가지의 위치는 서로 다릅니다.
출력
첫 번째 줄에 적당한 함수 와 적당한 개의 점을 단 한 번 골라 최대 몇 개의 가지를 소환할 수 있는지 출력합니다.