만드는 중입니다

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

벽 들어 올리기

면접 대비

시간 제한1초메모리 제한256 MB

요약
30개 이하의 크레인 후보지에서 네 벽면 중심을 모두 도달 거리 안에 두는 가장 적은 선택을 구합니다.
난이도

쉬움10점 중 3점

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

문제

한 건설사가 아파트를 짓는다. 벽은 미리 만들어 두었다가 크레인으로 들어 올려 제자리에 세운다. 건설사는 크레인을 놓을 수 있는 위치 nn곳을 찾아 두었고, 그중 몇 곳을 골라 네 벽의 중심이 모두 크레인 하나 이상에 닿게 하려 한다. 크레인은 비싸므로 개수를 최소로 줄여야 한다. 크레인은 벽의 중심까지 거리가 rr 이하이면 그 벽에 닿는다.

지을 집은 길이가 ℓ\ell이고 너비가 ww인 직사각형이다.

네 벽의 중심에 모두 닿는 데 필요한 크레인의 최소 개수를 구하라.

그림은 첫 번째 예제의 배치다.

입력

첫째 줄에 정수 ℓ\ell, ww, nn, rr가 공백으로 구분되어 주어진다. 넷 다 30 이하의 양의 정수다. ℓ\ell과 ww는 집의 길이와 너비, nn은 크레인을 놓을 수 있는 위치의 개수, rr은 크레인이 닿는 거리다.

다음 nn개의 줄에 크레인을 놓을 수 있는 위치의 좌표 xx와 yy가 한 줄에 하나씩 주어진다(−100≤x,y≤100-100 \le x, y \le 100). 좌표계의 원점은 건물의 중심이고 xx축은 집의 길이 방향이다. 따라서 네 벽의 중심은 (−ℓ/2,0)(-\ell/2, 0), (ℓ/2,0)(\ell/2, 0), (0,−w/2)(0, -w/2), (0,w/2)(0, w/2)이다.

출력

네 벽의 중심에 모두 닿는 데 필요한 크레인의 최소 개수를 한 줄에 출력한다. 어떻게 골라도 네 벽의 중심에 모두 닿을 수 없으면 Impossible을 출력한다.

예제2

  1. 예제 1

    입력
    4 2 3 3
    1 -2
    4 0
    -1 2
    
    예상 출력
    2
    
  2. 예제 2

    입력
    6 1 1 1
    1 0
    
    예상 출력
    Impossible