배 만들기

단순 다각형을 넓이가 같은 수직 구간으로 최대한 많이 나누되 각 구간의 넓이가 C 이상이 되게 하고, 벌크헤드의 x좌표를 출력한다.

보통7기하누적 합이분 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

현대의 배는 충돌한 뒤에도 가라앉지 않는다. 선체 안에 세로로 세운 보강 벽인 격벽이 들어온 물이 다른 구역으로 퍼지는 것을 막기 때문이다.

설계팀이 새 배의 단면 외곽선은 완성했지만 격벽 위치는 비워 두었다. 그 위치를 정하는 것이 당신의 일이다.

단면은 단순 다각형이다. 격벽은 한 x좌표에서 단면 전체를 자르는 수직 선분이고, 격벽을 여러 개 놓으면 단면이 세로 구역으로 나뉜다. 모든 구역의 면적은 서로 같아야 하고, 그 면적은 CC 이상이어야 한다.

이렇게 만들 수 있는 구역의 최대 개수 MM을 구하고, 격벽을 놓을 위치를 출력한다.

입력

첫째 줄에 구역 하나의 최소 면적 CC가 주어진다. (10C10910 \le C \le 10^9)

둘째 줄에 외곽선의 꼭짓점 개수 NN이 주어진다. (3N1053 \le N \le 10^5)

다음 NN개 줄에는 선체 꼭짓점의 좌표 xxyy가 주어진다. (104x,y104-10^4 \le x, y \le 10^4) 꼭짓점은 반시계 방향 순서로 주어진다.

외곽선은 가로 방향으로 되돌아오지 않는다. 어디에 수직선을 그어도 그 수직선은 단면을 정확히 한 번만 지나간다.

면적이 CC인 구역은 항상 하나 들어가고, 구역의 개수 MM은 1 이상 100 이하이다.

출력

첫째 줄에 MM을 출력한다. MM은 면적이 모두 같고 그 면적이 CC 이상인 구역으로 나눌 때 나올 수 있는 구역의 최대 개수이다.

이어서 M1M - 1개 줄을 출력한다. kk번째 줄에는 kk번째 격벽의 x좌표를 출력한다. MM개 구역의 면적이 모두 같도록 놓아야 한다. 좌표는 증가하는 순서로, 소수점 아래 여섯 자리까지 출력한다.