만드는 중입니다

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

불규칙한 케이크 (작은 입력)

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

요약
두 꺾은선 사이 영역을 수직선으로 G등분하는 절단 위치를 계산합니다.
난이도

보통10점 중 5점

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

문제

수학자 메리는 몇 해 전에 빵집을 열었다. 그동안 직사각형과 원 모양 케이크만 구워 온 것이 지겨워진 메리는 이번 생일에 불규칙한 케이크를 굽기로 했다. 불규칙한 케이크는 x=0x = 0부터 x=Wx = W까지 두 폴리라인 사이에 놓인 영역이다. 두 폴리라인을 각각 아래 경계와 위 경계라고 부른다.

폴리라인은 왼쪽에서 오른쪽으로 나열한 점 (P0,P1,…,Pn)(P_0, P_1, \dots, P_n)으로 정의한다. 이웃한 두 점을 선분으로 이어 붙이면 하나의 폴리라인이 된다.

오늘은 메리의 생일이다. 메리가 구운 케이크는 점이 LL개인 아래 경계와 점이 UU개인 위 경계로 둘러싸여 있다. 생일 축하 노래를 부른 뒤 메리는 케이크를 수직으로 G−1G - 1번 잘라 넓이가 똑같은 GG조각으로 나누려 한다. 그러면 손님 모두에게 한 조각씩 나눠 줄 수 있다. 케이크 모양이 불규칙해서 자를 자리를 정하기가 까다롭다. 어디를 잘라야 하는지 구하라.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 네 정수 WW (케이크의 너비), LL (아래 경계의 점 개수), UU (위 경계의 점 개수), GG (손님 수)가 공백으로 구분되어 주어진다.

다음 LL개 줄에는 아래 경계를 이루는 점이 주어진다. ii번째 줄에는 아래 경계의 ii번째 점의 좌표 xix_i와 yiy_i가 주어진다. 그 다음 UU개 줄에는 위 경계를 이루는 점이 같은 방식으로 주어진다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤W≤10001 \le W \le 1000
  • 2≤L≤1002 \le L \le 100
  • 2≤U≤1002 \le U \le 100
  • 모든 좌표는 −1000-1000 이상 10001000 이하의 정수이다.
  • 두 경계 모두 가장 왼쪽 점의 xx좌표는 00이다.
  • 두 경계 모두 가장 오른쪽 점의 xx좌표는 WW이다.
  • 같은 경계에 속한 점은 xx좌표가 증가하는 순서로 주어지며, xx좌표가 서로 다르다.
  • 00 이상 WW 이하인 모든 xx에서 아래 경계는 위 경계보다 항상 아래에 있다. 즉 모든 xx 위치에서 아래 경계의 yy좌표가 위 경계의 yy좌표보다 작다.
  • 2≤G≤32 \le G \le 3

출력

각 테스트 케이스마다 GG개 줄을 출력한다. 첫 줄에는 Case #x:를 출력한다. 여기서 x는 1부터 시작하는 테스트 케이스 번호다. 이어지는 G−1G - 1개 줄에는 잘라야 할 위치의 xx좌표를 왼쪽부터 순서대로 한 줄에 하나씩 출력한다.

케이크의 높이는 어디서나 양수이므로 왼쪽 끝에서부터 잰 넓이는 xx에 대해 순증가한다. 따라서 자를 위치는 하나로 정해진다.

각 좌표는 소수점 아래 여섯째 자리까지, 일곱째 자리에서 반올림해 정확히 여섯 자리로 출력한다. 정답이 55이면 5.000000으로 출력한다. 모든 테스트 데이터에서 정확한 정답은 반올림 결과가 갈리는 경계로부터 10−710^{-7} 이상 떨어져 있다.

예제1

  1. 예제 1

    입력
    2
    15 3 3 3
    0 6
    10 8
    15 9
    0 10
    5 11
    15 13
    8 3 4 2
    0 2
    5 4
    8 3
    0 5
    3 4
    4 7
    8 5
    
    예상 출력
    Case #1:
    5.000000
    10.000000
    Case #2:
    4.290588