대회 링크 :https://www.acmicpc.net/contest/view/1151

 

BOJ에서 첫 출제를 하게 되었는데 문제 선정에 제법 고민이 있었다. 가지고 있는 몇개 문제 중에 기하 문제를 출제하기로 결정했다. 사유는 여러 가지가 있겠지만 이번 문제를 제법 빠르게 내고 싶었다. 출제 마감 기한 전에 문제가 몇개 남아서 문제를 더 추가할까 생각도 했지만 검수진들이 들어오고 나서 보니 안 내길 잘한 것 같다. (14문제 8시간짜리 대회가 될거라고는 상상도 못했다.)

 

O. 이사하자!

사실 이 문제를 출제하게 된 배경은 약 9달 전 게시판에 쓴 글에서부터 출발한다.

 

글 읽기 - 조건을 추가해주세요

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net

이 문제 이후 문제 조건을 명확히 명시해야 한다고 많은 사람들에게 알려주고 싶었고 이 문제를 만들게 되었다. 3차원 이하의 공간에 직사각형(또는 직육면체)을 적절히 배치해서 어떻게 하는 문제를 출제하고 싶었고, 예전에 한 번 생각했던 직사각형 충돌 문제를 내기로 결정했다. 원래 문제에서 검색을 통해 쉽게 풀릴 수도 있다고 fs_edge님이 얘기해주셨고, 그렇게 수정해서 나온 문제가 이 문제이다. 원래 이 문제에는 정사각형의 각 모서리가 좌표축에 평행하지 않을 수 있다는 힌트가 없었는데, 출제/검수진 두 명이 낚였다. 한 분은 입력 데이터를 가지고 오셔서 "이 데이터는 정사각형이 아닌게 들어오는데요?"라고 하셨고, 한 분은 "~~~하면 CCW 없이 뚫리겠네요?"라고 하셨고 당연히 평행하지 않은 경우 반례가 나오는 풀이였다. 사실 이 부분은 힌트를 줄지 오래 고민해왔다. 그러던 와중에 검수진 한 분이 "악의적으로 받아들이는 참가자가 나올 수 있다"는 말을 해주셔서 좀 더 깊이 고민하게 됐는데, 결국은 1. 생각보다 긴 대회시간과 많은 문제, 2. 생각보다 높게 뽑힌 문제 난이도, 3. 이미 두분의 출제/검수진이 낚인 점을 고려해서 힌트를 넣기로 결정했다. (힌트를 추가했지만 검수진 한 분이 또 낚이셨다...)

 

대회 도중 계속 O번 제출 코드를 지켜봤는데, 보고 정렬로 해결한(...) 풀이는 정말 문제 입력 범위를 잘 판단해야한다는 것을 다시금 상기시켜줬다.

 

결국 대회 처음 공지했던 내용은 지켜지지 않았다.(...)

덕분에 첫 출제도 해보고 출제/검수 방법이나 다른 사람들의 풀이같은 곳에서 많이 배워 간 것 같다. (디스코드 사용법도 많이 배웠다.) 

 

+ Recent posts