취미로PS하는사람

[PS] ICPC 2025 후기 본문

PS

[PS] ICPC 2025 후기

def_win 2025. 11. 25. 16:40

PS를 본격적으로 접은지 거의 3년이 다 되어가지만 복학 후 친구들의 손을 못이겨 ICPC를 나가게 되었다. 예선 때 18등을 했고, 3늙은이+PS접 팀답게 패널티 관리를 더럽게 못해서 본선 수상은 못하지 않을까 싶었다.

이번 ICPC 리저널은 서울 리저널인데 부산에서 했다. 정말 거지같았다. 숙박비, 기차비로만 20만원 가량이 깨져서 어떻게든 상을 받고 본전을 찾으면 좋겠다고 생각했다.

대회 전날 예비소집 때부터 재밌는 점들이 꽤 많았는데, 대표적으로 어떻게 보면 같은 세대로 PS를 했던 고등학교 동기나 한두학년 선배 등 중 꽤 여럿이 운영측이었다는 점이 있었다. 우리의 일그러진 영웅 PS갤 파딱 문래빗을 이렇게 볼 줄은 몰랐다. 카이스트 fox is cute처럼 동년배 팀도 있긴 했지만 옛날에 참가자 중 서울대 카이스트 출신의 대부분은 어떤 방식으로든 아는 사람이었는데 지금은 절반 이상을 모르겠다는 점에서 시간이 꽤 흘렀다는 것을 체감할 수 있었다. 연습문제도 가볍게 풀어봤는데 IHHI와 나 둘 다 어이없는 이유로 맞왜틀을 하다가 대충 맞추고 나왔다. red1108은 장학금 때문에 늦어서 연습세션을 같이하지는 않았다.

이후 저녁에 돼지국밥을 먹자는 주장을 못 이기고 수변최고 돼지국밥에서 국밥을 먹은 후 가볍게 팀연습을 했다. 2024년 일본 셋으로 3시간 가량만 했는데 생각보다 (나 빼고) 다들 잘 풀어서 수상을 기대해볼 법 하겠다는 생각이 들었다. 어차피 ICPC본선에서는 다이아급 문제를 못 풀어도 수상은 되니까.. 그리고 예선 때도 느꼈지만 내가 쉬운 문제 코딩에서 자주 말리다 보니 구현을 깔끔하게 잘 하는 IHHI한테 던지면 좋겠다라는 정도의 전략만 짜고 잠을 잤다.

다음날 아침 red1108이 명찰을 놓고 와서 늦을 뻔 했다는 레전드 위기를 나의 확인 덕분에 무사히 넘기고 무사히 대회에 참가했다. 오프라인 본선은 처음이었는데 그래도 UCPC보다는 덜 산만할 줄 알았더만 굉장히 산만했다. 아무도 제재를 안 가하고 아무도 그렇게까지 심각하게 안 생각해서 그렇지 문제를 풀면서 토의하는 소리가 옆에 다 들리니 실력 좋은 팀 둘이 붙어있으면 어둠의 시너지(?)가 날 수도 있겠다는 생각이 들었다.

보통 후기를 적으면 대회 타임라인을 적던데 기억이 잘 안 나니 대충만 정리해보겠다.

대회 시작 후 내가 뒤쪽 문제들을 읽었는데, 맨 뒤 두 문제인 L과 M이 매우 빠르게 솔브가 나와서 약간 당황했다. M은 처음 봤을 때는 쉬운 것 같은데 딱 떠오르지는 않아서 L을 봤고 L이 쉬워보여서 풀이를 생각 중이었다. 스코어보드를 보면서 L과 M을 풀어야겠다고 생각이 들어 IHHI한테 M을 설명하니 그냥 1부터 n을 3번 찍으면 되는 문제였다. L을 보는데 입력에 불필요한 정보가 있어서 문제를 잘못 읽었나 확인하고 문제가 없는 것을 확인 후 코딩했는데 틀렸다. 알고보니 0이랑도 답을 max를 해야됐는데 안 했다. 고치고 바로 내려고 했는데 팀원들이 예제 나오는거 보고 다시 확인하고 내라고 해서 그러고 내서 맞았다. 이 시점에 솔브 수가 이미 3 이상인 팀들이 꽤 많아서 오늘도 패널티가 많이 말렸다고 생각을 하면서 G를 풀었다고 주장하는 red1108에게 컴퓨터를 넘겼다.

이후 내가 읽기로 한 문제들 중 읽지 않은 문제를 한 번 읽고, 스코어보드에서 많이 풀린 D를 IHHI가 모르겠다고 해서 D를 내가 잡았다. 체계적으로 생각하다보니 풀이가 나왔다. 일단 red1108이 G를 틀리면서 삽질을 해서 C가 하드 코딩이라고 주장하며 코딩하던 IHHI가 자신의 풀이가 n^4이라 틀렸다는 사실을 깨달았길래 D의 풀이를 설명해주고 코딩을 하도록 했다. 내가 생각하지 못한 상황이 있었는데 그것까지 깔끔하게 잘 처리해서 한 번에 맞았다. 난 그동안 red1108의 코드를 같이 보면서 디버깅을 했는데, 일단 풀이는 틀릴 수가 없었고 자세히 뜯어보니 계산 과정에서 long long 범위도 터질 수 있었다. C를 잡고 있던 IHHI의 컴을 뺏고 약간의 수정을 가한 뒤 G도 맞았다.

이후 IHHI가 C을 한 번 더 틀리며 약간의 디버깅 씨름을 하더니 아무튼 맞았다. 그동안 나는 red1108에게 I을 설명해줬고 그냥 쌩구현 문제라 red1108이 구현 방법을 잘 정리하더니 다음에 풀겠다고 했다. 그다음 E를 같이 봤는데 같이 생각하다보니 서브트리 독립인 문제로 만들 수 있음을 찾았고 이쯤에 C 억셉이 나와서 red1108이 I 코딩에 들어가고 IHHI와 E를 같이 고민했다. 관찰한 것을 다 공유하고 조금 같이 생각해보니 그냥 서브트리 크기를 정렬해서 적당히 더해주면 됐다. I를 짜던 red1108의 자리를 뺏고 IHHI가 E를 짜서 맞았다. 이후 다시 I 코딩에 돌입하고 마침 솔브가 나오기 시작한 K를 IHHI와 잡았다. 처음엔 불도저를 하면 되는 줄 알았는데 그건 아니었고 각도정렬을 잘 하면 된다는 사실을 IHHI와 함께 발견했다. 문제는 90도 단위로 쪼개서 점들의 개수를 세야한다는 것이었는데 좌표 범위가 10^6이라 실수오차가 적을 것이라 믿고 그냥 각도 자체를 구해서 코딩해버리자는 IHHI의 아이디어가 좋아보였다. 코딩을 너무 안 한 내가 K 코딩에 들어가고 나머지 둘은 나머지 어려운 문제들을 보았다.

내가 K에서 코딩 트롤을 좀 하긴 했는데 아무튼 예제가 나오고 바로 제출하니 맞았다. 여기까지 하고 등수를 봤는데 알고 보니 우리 위에 외국인 팀이 3팀이나 있어서 등수가 6등이었다. 이 시점에는 8솔 자체가 많이 없었다. 이후 조금 지나서 프리즈가 됐는데, 8솔은 많이들 할 것 같아서 9솔을 위해 세 명 모두 고민만 하는 단계에 접어들었다. 나는 잘 모르지만 내가 K를 짜는동안 J의 풀이가 나온 것 같았고 뭔가 된다는 것을 믿고 코딩을 하는데 계속 틀렸다. 난 풀이를 잘 몰라서 무슨 문제가 있었는지는 잘 모른다. 그동안 나는 red1108과 H를 잡았는데 종료 1시간 전쯤 $\sum _nC_k^3$과 비슷한 애들을 계산하면 됨을 깨닫고 내가 생성함수로 뭔가 만들어보려했지만 실패하고 사실상 반 포기 상태로 들어갔다. 그렇게 프리즈 이후 더 풀지 못하고 대회가 종료되었다.

일단 기억하기로는 이랬는데 순서가 약간 틀렸을 수도 있다.

아무튼 우리 밑에서 9솔 이상을 한 팀도 없고 패널티도 좋은 팀이 별로 없었던 덕분에 8등으로 동상 수상에 성공했다.


와! 동상!

 

Linked list가 된 풍선들

알고 보니 나 빼고 두 명은 이미 ICPC 수상이 있었다. 아무튼 별 기대 없이 했던 올해 무관탈출을 했고 전체 8등 서울대 7등이라는 레전드 등수를 받으며 성황리에 ICPC를 마무리했다.


이후 저녁은 문래빗, IHHI, red1108과 함께 해운대에 가서 먹었다. 미슐랭 가이드에도 선정된 장어덮밥집 해목에 갔다.

 


장어덮밥은 까먹고 안 찍어서 다 먹은 것만 찍었다. 덴푸라는 갓포호산에서 먹었던 기억 때문에 또다시 실망을 했다. 그냥 덴푸라는 웬만하면 일본 가서 먹어야겠다.. 장어덮밥은 괜찮았다. 가격이 39000원이지만 장어 자체가 비싼 것과 장어 양이 상당했음을 고려하면 나름 좋은 가성비라고 볼 수 있을 것 같다. 굽기도 적당했고 양념이 베스트까지는 아니어도 잘 어울렸다. 오차즈케로 먹는 것이 또 별미였다.

이후 영화 보면서 놀다가 다음 날 점심 부산역에서 밀면과 수육 만두 한 상을 거하게 때리고 서울로 돌아왔다.




정말 바쁜 와중에 즐거운 일탈이었다.

Comments