만드는 중입니다

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

배 만들기

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

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

보통10점 중 7점

유형
기하, 누적 합, 이분 탐색
정답자
아직 제출이 없습니다

문제

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

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

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

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

입력

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

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

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

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

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

출력

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

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

예제3

  1. 예제 1

    입력
    50
    4
    110 10
    80 10
    80 0
    110 0
    
    예상 출력
    6
    85.000000
    90.000000
    95.000000
    100.000000
    105.000000
    
  2. 예제 2

    입력
    24
    3
    10 10
    30 10
    20 20
    
    예상 출력
    4
    17.071068
    20.000000
    22.928932
    
  3. 예제 3

    입력
    1280
    10
    100 120
    97 50
    94 99
    74 97
    50 87
    29 71
    13 50
    3 26
    0 0
    100 0
    
    예상 출력
    6
    27.501547
    44.320438
    59.004132
    72.700842
    85.849445