대회 후기/출제 & 검수

2023 PPC 개최 후기

leo020630 2023. 5. 30. 14:16

굉장히 오랜만에 블로그 글을 쓴다. 이번 학기가 끝나고 따로 글을 쓰겠지만, 정말정말 바빴다. 때문에 따로 시간을 투자해서 하는 PS는 거의 하지 못했고, 코포나 앳코더 정도만 간간히 쳤다. 그마저도 시간이 없어 블로그에 따로 글을 쓰진 못했다. 그리고 이번 학기가 그렇게 바빴던 이유 중 약 반 정도는 지난 UDPC와 이 글에서 쓸 PPC가 차지한다. 왜 바빴는지 대회 준비 과정을 한번 되짚어보도록 하겠다.

 

대회 링크 : https://www.acmicpc.net/category/845


발단 및 출제 과정

대회가 1학기로 당겨지는 것이 확정이었기에 2월부터 준비를 시작했다. 출제진은 기존 3명에, 작년 대회 우승자인 kwoncycle과 준우승자인 (그리고 대학원생이라 출전을 하지 못하는) menborong님을 더해 5명으로 결정되었다. 출제를 시작할 때에는, 참가자들의 실력이 작년보다 낮을 것이라 예상해 난이도를 작년보다 쉽게 내고자 하였다.

 

그리고 길고 긴 출제 과정이 이어졌다. 셋이 지금의 구성으로 확정된 것은 대충 4월 초 쯤인데, 그 때는 F와 J의 너프 여부가 확정되지 않았고 H와 L이 다른 문제였으며 N이 없었다. 저 문제들이 수정된 것은 검수 과정에서 플레로 예상한 문제들이 다이아로 가고, 실버로 예상한 문제들이 골드로 가버리면서 일어난 일이다. 대회 2주쯤 전이었는데, 빈 자리 난이도를 채워넣을 필요가 있었기 때문에 14문제라는 뇌절을 감수하면서 N을 추가하였다. 다른 이슈로는 이번 대회에서는 python으로 풀리는 것을 보장한다고 말해버려서 열심히 검수를 해야 했다. 상당히 귀찮았지만 python 사용자가 꽤 있었기 때문에 필요한 일이었던 것 같다. 

 

검수진은 작년과 마찬가지로 우선 hyperbolic님에, 지원해주신 여러 훌륭한 분들 중 고민 끝에 네 분을 선택해 결정되었다. 검수진을 뽑는 일은 언제 해도 쉽지 않은 것 같다. PPC는 행정실 측의 요구사항도 고려해야 했기 때문에 더욱 힘들었다. 검수 과정이 길어지며 검수가 필요한 문제가 좀 밀린 순간이 있었는데, slah007님이 엄청난 군대 동기 두 분을 데려와 주시며 어느 정도 해결되었다. 정말 감사할 따름이다.

 

문제별 후기

각 문제의 출제 의도와 준비 과정을 간단히 다뤄보도록 하겠다. 내가 낸 문제는 A, F, H, L, M, N이다. 이번에는 세팅 적게 한다고 좋아했는데 2주 전에 F1, H, L, N이 생기면서 세팅을 4개나 더 해야 했다.

 

A. 모범생 포닉스 / 출제자 : leo020630

 

작년 H가 B1을 찍는 모습을 보고 대놓고 쉽게 만든 0솔 방지 문제이다. A에 놓기는 싫었는데 다른 출제진들의 주장으로 A에 놓게 되었다.

 

B. 폭발 속에서 살아남기 / 출제자 : menborong

 

나름 참신한 기하 문제라 생각해서 출제가 결정된 B번이다. 하지만 안타깝게도 검수를 시작하자 유사한 문제 가 발견되어 놀랐다. 다행히 문제 상황 탓에 풀이가 꽤 달라 별 문제는 없었다. 기하 문제답게 데이터 만드는 과정은 힘들어 보였다. 여담으로, 이 문제의 출제자는 각도 정렬만 하면 된다는 이유로 큐에 넣을 때의 난이도를 S1으로 주장한 바 있다. ㅋㅋ

 

C. 이상한 배열 / 출제자 : qjatn0120baek

 

그냥 그런 자료구조 문제이다. 출제자와 나는 set 풀이도 쉽다고 생각해서 그냥 냈는데, 대회 참가자들은 생각을 하지 않고 세그로 푸는 모습을 보여 안타까웠다.

 

D. 보물 사냥 / 출제자 : menborong

 

원래는 플레 상위권으로 계획된 문제이다. 레버가 없는 버전이 P2이고, 출제자 분이 그래프 모델링이 딱히 어렵다 하지 않아서 P1이라 주장하셨고 그대로 믿었다. 하지만 어려운 탓에 검수가 자꾸 늦어졌고.. 그렇게 밝혀진 난이도는 D4~5정도였다. 문제를 뺄 수는 없으니 그냥 대장 문제라 생각하고 출제하게 되었다. 나는 안 풀어서 잘 모르는데, 데이터 만드는 과정도 약간 힘드셨던 것 같다.

 

E. 지구평면설 / 출제자 : kwoncycle

 

출제자가 어디서 가져온 문제이다. 원래는 YES/NO 판별 문제였는데, 과정 하나가 더 추가되면서 난이도가 팍 올랐다. 출제자는 G2~3이라고 주장하는데, 현재 난이도는 P4에 찍혀 있다.

 

F. 단순한/평범한 그래프와 쿼리 / 출제자 : leo020630

 

작년 PPC 때 부터 큐에 들어 있던 문제이다. 아끼던 문제이기에 올해는 꼭 내고자 했다. 원래는 그냥 원본으로 내려 했으나, D와 I의 난이도가 예상보다 너무 올라버렸고 저 두 문제는 구조적으로 너프를 할 수 없었기에 눈믈을 머금고 이 문제를 너프했다. 하지만 너프를 진행했음에도 본 대회에서는 0솔브였다. 정말 안타깝다. F2는 내가 열심히 생각한 ad hoc 스러운 풀이 말고도 다이아 정도의 사전 지식을 이용하는 풀이가 존재했다. hyperbolic님이나 aeren님은 저 사실을 이용해 이 문제를 굉장히 빨리 해결하는 모습을 보였다. 해당 지식을 모른다면 D4~5정도의 관찰이 필요한 것으로 보인다.

 

G. 대회 상품 정하기 / 출제자 : menborong

 

적절한 실버 문제이다. 너프하는 것도 고려 사항에 있었으나, 진행되지 않았다. S3정도로 예상했으나 부등식 정리가 좀 어려운지 현재는 S1에 위치하고 있다.

 

H. 삼각형 모험 / 출제자 : leo020630

 

그래프 문제 라인업이 D, F2, J2만 있을 때 쉬운? 정통 그래프 문제가 필요해 넣었다. 낼 때는 G2~3 정도일 줄 알았는데, 정해를 짜 보고 150줄이 나오자 뭔가 잘못됨을 느꼈다. 그 후로도 열심히 G1이라 주장했지만 안타깝게 플레로 가 버리고 말았다. 데이터는 대충 만들면 매번 BFS를 하는 이상한 풀이가 뚫릴 수 있기 때문에 컴포넌트의 크기가 큰 데이터를 열심히 만들었다.

 

I. 분탕 / 출제자 : kwoncycle

 

출제자가 플레 중상위라고 해서 그러려니 하고 큐에 넣은 조합 문제이다. D와 마찬가지로 다이아에 가버렸다. 다음부터 난이도 평가는 꼭 풀어보고 해야 함을 절실히 느꼈다. 문제 자체는 굉장히 좋다고 생각한다.


J. 나무 타기 / 출제자 : slah007

 

현재 군대에 있는 slah007님이 출제한 유일한 문제이다. Hard 버전의 풀이가 굉장히 아름답다고 생각했기에 비교적 빨리 출제가 확정되었다. 하지만 안타깝게도 이 문제를 Hard로 내면 스코어보드가 망할 것이 눈에 선했고, 본 대회에는 정말 재미없는 Easy 버전을 낼 수 밖에 없었다.

 

K. 회전초밥 / 출제자 : qjatn0120baek

 

생각을 한 번 정도 하면 되는 실버 구현 문제이다. 실버는 항상 모자랐기에 무난히 출제를 확정했다. 따로 특별한 점은 없었다.

 

L. 라이벌 / 출제자 : leo020630

 

이 자리에는 원래 플 하위의 다른 문제가 있었다. 허나 DP가 없고 난이도 커브를 조정한다는 이유로 골드 DP를 어떻게든 만들어 이 자리에 넣으려 노력했다. 하지만 이러한 과정으로 만드는 문제가 그렇듯이 만족할 만한 결과가 나오지 않았고, 그나마 합격점을 통과한 문제가 이것이다. 처음에 구상한 버전은 SOS DP와 같은 누적합을 사용해야만 통과하는 것이 목적이었으나, 어렵다는 평을 많이 받아 너프를 진행했다. 현재는 두 종류의 누적합 계산과 커팅을 한 브루트 포스 풀이로 문제를 풀 수 있다. 여담으로, SOS DP가 D5 정도로 어려운지 잘 모르겠다. 플 상위에 있는 다른 DP 최적화 테크닉들과 비교하면 현저히 쉽다. 이 글을 읽으면 원리를 굉장히 쉽게 이해할 수 있다. 개인적으로 P2~3 정도로 내려가야 한다고 생각한다..

 

M. 약속 장소 2 / 출제자 : leo020630

 

작년 A번에서 컨셉을 어느 정도 따왔다. 작년에 맨 앞에 있었기 때문에 올해는 가장 뒤에 배치했다. 하지만 마지막 문제가 추가되며 마지막에서 2번째에 있는 문제가 되었다. 적당히 괜찮은 코포식 문자열 애드혹이라고 생각했는데, 아무래도 코포식이다보니 발상 난이도가 좀 있는 것 같다. 실1~2 정도로 생각했는데 골4에 위치하게 되었다.

 

N. 마지막 문제 / 출제자 : leo020630

 

실버로 예상한 문제가 다 너무 어렵다는 평이 있어 급하게 추가한 문제다. 문제의 컨셉은 문제를 내게 된 계기에서 따왔다. 본 대회에서 2솔 팀이 꽤 있던 만큼 추가하길 잘 했다고 생각한다. 제한 관련 논의가 좀 길었는데 너무 쉬운 풀이는 막되 제곱 정렬을 허용해주는 선에서 정했다.

 

셋에 대한 총평

개인적으로는, PPC 문제 셋의 퀄리티에 대한 욕심이 있다. 그 이유로는 몇 가지가 있는데, 우선 내가 가장 열심히 참여하는 대회이기 때문이 크다. 백준에 이름 걸고 여는 만큼 많은 분들에게 좋은 평가를 받았으면 좋겠다는 생각이 있다. 또 다른 이유로는, 요즘 들어 많아진 대학 교내 대회 셋에서 PPC만이 가지는 차별성이 있었으면 좋겠다는 점이다. 구체적으로 말하자면 다음과 같다. 대학 대회 셋 중에 4~5시간 팀연습이 가능한 볼륨인 12~13문제로 나오는 셋이 잘 없다. 아마 카이스트, 연대, SUAPC 정도가 이 정도 규모로 나오는 것으로 알고 있는데, PPC는 이들보다는 쉬우면서 비슷한 규모의 셋이라는 특징을 유지하는 것이 개인적인 목표이다.

 

하지만 올해 셋에는 이러한 욕심이 긍정적으로도, 부정적으로도 작용했던 것 같다. 긍정적인 면을 말해보자면, 우선 문제들의 퀄리티가 대체적으로 만족스럽다. 뇌를 쓰지 않아도 되는 웰-노운 문제를 최대한 내지 않으려고 노력했으며, 정말 웰노운이라 불릴만 한 문제는 C, J1 정도를 제외하면 없는 것 같다. 다만, 그 까닭에 난이도 조절에 실패했다. 발상이 많이 필요하다는 것은 자연히 실제 티어가 예상 티어보다 높아질 확률이 크다는 뜻이기도 하다. 골드 상위~플5 정도로 예상한 E, F1, H, L이 모조리 플레로 가버리면서 본 대회는 골드보다 플레가 많은 이상한 셋이 되었다. 또한, 퀄리티에 집중한다고 문제를 자꾸 갈아치워서 대회 준비가 상당히 촉박하게 진행되었다. 무슨 UCPC에서도 볼 수 없는 14문제 셋을 만들어버린 것은 덤이다. D나 I 같은 문제는 그냥 내치거나 오픈에만 내는게 맞았던 것 같다.

 

내년부터는 퀄리티는 유지하되, 난이도 조절과 대회 스케줄링에 조금 더 힘을 써야할 것 같다. 틈틈이 문제 만들어놔야지..

 

 

대회 진행

출제만 해도 되었던 작년과 달리 올해는 내가 운영 역시 총괄해야 했다. 운영을 맡아 제일 먼저 한 것은 풍선을 사자고 주장하는 것이었다. 행정팀 선생님들도 PPC가 축제 분위기를 띄는 것을 지향하셨기에 상당히 빠르게 컨펌이 되었다. 풍선은 총 370개 정도를 주문했는데, 대충 150개 정도를 쓴 것 같다. 이렇게 많이 남은 것은 당일 불참 팀의 탓도 있지만, 풍선을 처음 주문한 누군가가 대회중 0솔이었던 F1을 20개, 2솔이었던 H를 25개 사는 기염을 토한 까닭이다. 다행히 학과에서 잘 처리해주셔서 자금 문제는 크게 없었다. 내년부터는 계산을 잘 해야지..

 

스코어보드적으로는, 올해는 PPC 상위권 팀들의 수준이 상향평준화 되었다고 생각해서 상당한 기대를 품고 관전하였다. PPC 전 1달 정도 매주 팀 연습을 돌렸는데, 대충 골드까지는 잘 밀길래 기대가 컸다. (난이도 조절 실패에 약간 기여한 이유이기도 하다.) 예상대로, 골드 중위권 컷인 7솔에 무려 7팀이나 도달해주었다. 아쉬운 점은, 7솔 달성이 예상보다는 느렸다는 것과 그 다음 난이도 라인업인 E-F-H-L이 생각보다 어려웠던 탓에 각각 1, 0, 2, 0이라는 저조한 솔브 수를 달성했다는 것이다. 결과적으로는 1~3등이 8솔, 4~7등이 7솔을 기록했다. 1등은 22학번 1인 팀으로, E를 유일하게 해결하고 B를 아깝게 틀려 페널티 차 우승을 차지하였다. ICPC를 같이 나가는 만큼 더 잘했으면 좋겠다.

 

오픈 컨테스트는 본 대회 시간이 겹치는 숭실대보다 예약이 늦어 본 대회가 끝난 후 진행하였다. aeren님이 압도적인 실력을 자랑하시며 올솔에 도전하였으나, 의문의 보스 문제가 된 마지막 문제를 해결하지 못해 좌셋으로 끝났다.

 

소감

대회 운영은 원래 당일이 가장 재미있다. 준비 과정은 정말 힘들었지만, 그래도 당일 풍선도 옮기고, 프린트도 하다 보니 나름 재미있었다. 특히 매년 참가자 수준이 올라오는 게 보여 뿌듯한 것 같다. 나름 포스텍 PS 생태계에 기여했다는 생각도 들고.. 내년에는 다른 누군가가 운영을 맡아 줘야 할텐데, 믿을 만한 사람이 꽤 생겨 다행이다. 내년에는 출제진이 줄어들 것으로 보이는 만큼 출제에 조금 더 신경써서 난이도나 문제 수 조절을 올해처럼 실패하지 않게, 그러면서도 퀄리티는 만족스럽게 나오도록 노력해봐야겠다.

 

함께 해주신 출제/검수진 분들, 본 대회/오픈 컨테스트 참가자 여러분, 그 외에도 PPC에 큰 관심 가져주신 분들 모두 감사합니다! 

 

'대회 후기 > 출제 & 검수' 카테고리의 다른 글

2023 KSA Automata Summer Contest 검수 후기  (0) 2023.09.02
2023 코드마스터 검수 후기  (2) 2023.06.22
2023 UDPC 개최 후기  (3) 2023.04.15
2023 SUAPC Winter 출제 후기  (4) 2023.02.27
2022 GCC 개최 후기  (3) 2022.12.27