체스에서 기물을 잃지 않으려면 애초에 서로 마주치지 않게 두는 것이 좋은 전략이다. IBM은 딥블루에게 이 전략을 가르치려고 한다. 그래서 보드에 남은 기물끼리 아무도 서로를 공격하지 않는 상태로 만들려면 기물을 최소 몇 개 없애야 하는지 구하는 프로그램이 필요하다.
모든 기물은 일반적인 체스 규칙대로 공격한다.
---------------
| | |*| |*| | |
---------------
| |*| | | |*| |
---------------
| | | |N| | | |
---------------
| |*| | | |*| |
---------------
| | |*| |*| | |
---------------
N = 나이트
* = 나이트가 공격할 수 있는 칸
두 기물 사이를 다른 기물이 막고 있는 상황까지 따져도 답은 같으므로, 경로가 막히는지는 신경 쓰지 않아도 된다.
입력은 최대 100개의 데이터 셋으로 이루어지고, 데이터 셋 사이를 구분하는 빈 줄은 없다. 보드는 최대 10x10이며, 한 데이터 셋에 놓인 기물은 최대 15개다.
각 데이터 셋은 다섯 부분으로 나뉜다.
START가 주어진다.K: 킹Q: 퀸R: 룩B: 비숍N: 나이트E: 빈 칸END가 주어진다.입력은 파일의 끝에서 끝난다.
데이터 셋마다 한 줄씩 다음 형식으로 출력한다. 출력 사이를 구분하는 빈 줄은 없다.
Minimum Number of Pieces to be removed: X
여기서 X는 남은 기물끼리 서로 공격하지 않게 만들려고 제거해야 하는 기물의 최소 개수다.