토 로이드 형으로 감싼 W x H 격자 사각형을 상상해보십시오 . 다음과 같이 항목이 그리드에 배치됩니다.
첫 번째 항목은 모든 사각형에 배치 할 수 있지만 후속 항목은 이전 항목의 맨하탄 거리 R 내에 있지 않아야합니다 ( 범위 R 의 Von Neumann 이웃 이라고도 함 ). 위치를 신중하게 선택하면 더 이상 유효한 위치가 없어지기 전에 많은 항목을 그리드에 맞출 수 있습니다. 그러나 반대의 목표를 생각해보십시오. 배치 할 수있는 가장 적은 품목은 무엇입니까?
반경 5 제외 영역은 다음과 같습니다.
여기에 또 다른 반경 5 제외 영역이 있습니다. 이번에는 가장자리 근처에서 래핑 동작이 분명합니다.
입력
세 정수
- W : 그리드 폭 (양의 정수)
- H : 그리드 높이 (양의 정수)
- R : 제외 영역 반경 (음이 아닌 정수)
산출
더 이상 유효한 배치를 막기 위해 배치 할 수있는 최소 개수의 항목 인 정수 N 입니다.
세부
- 반지름이 0이면 제외 영역이 1 제곱 (항목이있는 영역)입니다.
- N의 반경은 N 직교 단계에서 도달 할 수있는 영역을 제외합니다 (가장자리를 환상으로 감싸는 것을 기억하십시오).
코드는 R = 0 의 사소한 경우에는 작동해야하지만 W = 0 또는 H = 0 에서는 작동하지 않아도됩니다 .
코드는 R > W 또는 R > H 인 경우도 처리해야합니다 .
시간 제한 및 테스트 사례
코드는 모든 테스트 사례를 처리 할 수 있어야하며 각 테스트 사례는 5 분 이내에 완료되어야합니다. 이 작업은 쉬워야합니다 (예 : JavaScript 솔루션 예제는 각 테스트 사례마다 몇 초가 걸립니다). 시간 제한은 주로 극단적 인 무차별 접근 방식을 배제하는 것입니다. 예시적인 접근법은 여전히 상당히 무차별 한 힘입니다.
한 시스템에서 5 분 이내에 코드가 완료되었지만 다른 시스템에서는 그렇지 않은 경우
입력 형식의 테스트 사례 :W H R : N
5 4 4 : 1
5 4 3 : 2
5 4 2 : 2
5 4 1 : 5
7 5 5 : 1
7 5 4 : 2
7 5 3 : 2
7 5 2 : 4
8 8 8 : 1
8 8 7 : 2
8 8 6 : 2
8 8 5 : 2
8 8 4 : 2
8 8 3 : 4
7 6 4 : 2
7 6 2 : 4
11 7 4 : 3
11 9 4 : 4
13 13 6 : 3
11 11 5 : 3
15 14 7 : 2
16 16 8 : 2
아이디어로 시각화하고 둘러 볼 수있는 스 니펫
예제 (비 고정) 솔루션
작은 출력에 대한 예일뿐입니다 (너비와 높이보다 크지 않은 반지름 결과). 테스트 사례를 처리 할 수 있지만 시간이 초과되어 더 큰 사례를 포기합니다.