본문 바로가기

잡담

6년만에 ICPC 온사이트를 본 후기

아니

이게 이렇게되네 ㅋㅋ

 

6년만에 ICPC에 참여했습니다. 물론 전 대학생은 아니고 오히려 졸업한지 한참 되었습니다(???)

아니 진짜 아직도 어이가 없어요 ㅋㅋ

 

1. 일의 발단

 

일의 시작은 ICPC가 서울이 아닌 부산에서 열리면서 시작되었습니다. 아니 어떻게 벡스코에서 열리는게 서울리저널 ㅋㅋ 라고 웃었는데 저는 학교가 포항인지라 서울에서 ICPC가 열리면 구경가기가 어려웠습니다. 그래서 서울리저널이라 읽고 부산리저널이라 쓰는 이번 대회가 반가웠어요. 모처럼 부산에서 열리고 가까우니까 대회날 전후로 놀러가서 사람들 밥이나 사주고 응원이나 해주면 되겠다- 싶었죠.

 

이 와중에 한국에 온다는 일본팀이 몇팀정도 있었는데, 그중에 저랑 친하신 분들도 있었습니다. 외국분들 만나기 어렵기도 하고, 그래서 ICPC오시면 제가 놀러갈테니 밥이나 먹죠-라고 권유했습니다. 그런데 한참동안 답이 안오더니....

 

번역: 일본팀(11명) 전원 올것 같아서, 식당예약 해주시면 감사하겠습니다! 라네요

 

만나기로 하신 분이 갑자기 일본팀 코치포함 전원을 부르겠다는겁니다. 아니 저도 아는 사람 2~3명 정도고 나머지 분들 다모르는데??? 아무튼 그래서 갑자기 저 혼자 일본인 11명을 상대하게 생겨서(...) 갑자기 급쫄리더라고요. 그래서 실례지만 역시 저 혼자는 어려운데 한국팀들좀 불러도 되냐고 물었는데... 밥약속 3시간 전인데 아무 대답도 없더군요. 더 쫄리더라고요.

어찌저찌 메뉴 고기가 괜찮다는 OK사인과 한국분들 초대해도 된다는 얘기를 듣고 급히 한국분들 구했습니다. 저혼자 11명 상대는 어려워요. 헬프

 

살려주세요

 

 

그런데 과연 일본어가 가능한 PS러가 얼마나 있을까요? 작년에 일본 PS러가 한국에 온적 있어서 그때도 일본어 할 줄 아는 PS러를 구한적이 있는데 없어서 제가 전부 통역하느라 힘들었는데요. 그런데 다행이도 이번엔 일본어 하시는분들이 많더군요! 그래서 어떻게든 살았습니다 ㅠㅠ

 

그래서 일본팀 3팀+2명(교토대 DaiMonge, 도쿄공대 AMATSUKAZE, 도쿄대 Magical Fish, 코치2명), 한국팀 3팀+2명(연세대 SEVERANCE, 전북대 2 3 5 8 14, 포스텍 ConSpirito, 포스텍 사람 1명, 서울대 사람 1명), 그리고 저 총 23명이 금요일에 밥자리를 가지게 되었습니다!

 

 

23명 전부 커버하는 식당 찾기가 어려웠습니다.

 

저는 호텔이 서면이고 거기서 리듬게임좀 하고 오느라(...) 해운대까지 오는게 좀 늦었습니다. 그래서 만나는 지점인 해운대역 5번 출구에 조금 늦게 왔는데, 한국팀 일본팀 전부 와있더군요. 제가 없어서 서로 소개를 못했었는데, 그냥 한국인 일본인 같은 출구에서 10명넘게 우글우글거리니 서로가 서로를 못알아 볼수가 없었던 모양이에요(...) 그냥 자연스럽게 아 저사람들이구나 하고 눈치채고 합류했다고 합니다.

오는길에 AMATSUKAZE팀의 한분이 두통이 있다고 하셔서 약사느라 늦게온다 하고, SEVERANCE팀은 오라는 5번출구에서 안모이고 식당에 직접 가있었던지라(...) 대충 16명정도가 한꺼번에 움직여서 식당에 도착했습니다. 그래서 식당에 도착한 후, 대충 한국인 일본인들 섞이도록 자리 나누고, 늦게오는 AMATSUKAZE팀을 배웅했습니다. 아 너무 힘들었어요.

 

단체사진이 있긴 한데 초상권이 있으니까 그냥 고기사진으로 대체

 

저는 사람들을 조율하느라 끝까지 자리에 앉아서 밥먹지는 못했고, AMATSUKAZE팀 배웅하고 나서야 자리에 앉아 밥을 먹었습니다. 자연스럽게 늦게온 AMATSUKAZE팀과 그 코치님과 밥을 먹게 되었고요. 그러다보니 테이블의 레이팅이 좀 살벌하더라고요. 맥스 레이팅 순서대로 3100, 2700, 2600인가? (...)

 

아무튼 거기서 도쿄공대 코치님인 tatyam님과 같이 밥을 먹었습니다. 일본의 엄청난 실력자를 만나보게 되서 감격스럽더군요. 이런저런 얘기를 일본어로 했는데 기억에 남는건 별로 없고 2가지가 기억에 남네요. 첫번째는 좋아하는 알고리즘이 뭐에요? 라고 물어보니 갑자기 말없이 가방을 뒤적거리면서 노트북을 찾더니, 갑자기 ppt를 열어서 자신의 졸업 논문을 발표하시더라고요(...) 아 너무 무섭다

두번째는 

도쿄공과대학프로그래밍콘테스트2025(Div. 1)

 

갑자기 또 노트북에서 앳코더 여시더니 도쿄공대 프로그래밍 대회가 있다, 유니버설 컵에서도 열린다, 부디 참여 부탁한다(...)라는 반강제 권유였습니다. 이....이거 해야하나....

 

아무튼 테이블에서 이런저런 얘기를 하면서 밥을 먹고, 서로 헤어졌습니다. 끝나고 제가 계산을 하는데 이야 798000원이 나오더라고요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

FPS 이해할때까지 못나가는방 이거 의외로 후배들이 자진해서 열어달라고 하던데요(??)

 

다른 테이블에서도 재밌는 얘기 많이 했던것 같더라고요. 특히 일본어가 되는 분들이 많아서 일본분들이 한국사람들 왜이렇게 일본어 잘하지? 하고 놀랐다고 하네요. 그리고 애니메이션으로 일본어 배웠다고 하니 더 놀랐다고 하고..........

그런데 다른 테이블에서 제 험담(??)이 오간것 같은데 제가 바빠서 정신 못차리는 사이에 이런 음해를

 

그렇게 금요일 식사가 끝나고 저는 서면의 호텔로 돌아갔습니다. 그리고 지쳐서 바로 호텔에서 기절했어요. 이때까지는 제가 진짜 내일 있을 일을 상상도 못했는데....

 

 

2. 대회날 아침

 

호텔에 도착하자마자 기절하듯이 일찍자서 그런지 새벽에 일어났습니다. 새벽에 일어나서 솔브드 디스코드를 보니 79brue님이 2025 포스텍 프로그래밍 대회 문제를 풀고계시더군요. 그래서 방송을 들어갔는데 딱 제가 만든 문제에서 끙끙대시는걸 보고.. 히히 하는 마음으로 방송을 계속 봤네요. 결국 대회 끝까지 다 푸시는걸 봤는데, 와 진짜 대단하셔요. 진짜 쉽지 않은 문제들 있는데 풀이 생각하시면서 중얼거리는 알고리즘이 대부분 올바른 방향성의 알고리즘들이고, 결국 다이아2 문제까지 자리에서 뚝딱 풀어내시는게.... 새삼 엄청나신 실력자분이라고 다시금 깨달았습니다. 아무튼 PPC 문제푸는 방송보다가 결국 호텔에서 늦게 출발했습니다. 말했듯 서면인지라 벡스코까지는 거리가 좀 멀고 그래서 9시까지 등록인데 9시 근처에 아슬아슬하게 현장에 도착했습니다. 벡스코 도착하니 포스텍 후배들이 허겁지겁 현장으로 달려가고 있더군요. 나는 제3자 외부인이니 괜찮은데 참가자가 늦으면 어쩌냐고 한소리 하고(...) 후배들 보냈습니다.

 

그리고 ICPC 현장 앞에서 Sait2000님을 만났습니다. 세상에 저처럼 평범한 일반인이 ICPC 현장에 놀러올줄은 상상도 못했네요. 서로 "님 여기 왜있음?? 엌ㅋㅋㅋㅋ" 이라고 말하며 수다나 떨다 사람들 지나가면 인사했습니다. 어제 밥먹은 일본팀들도 보여서 인사했었고요. 그렇게 한 9시 20분즈음 되었나, 다들 현장에서 대회준비해서 이제 만날 사람도 없기에 Sait2000님과 저는 ICPC와 같은 곳에서 열리는 부산 일러스트페어라는 곳을 가보기로 결정했습니다.

 

오따꾸 행사가 아닌건 아쉽지만 그래도 볼거 많아보이더군요

 

그렇게 1층을 가니 사람이 진짜 많았어요. 겨우겨우 현장에서 티켓을 사고 줄서있었습니다. 그런데 10시 개장이고 개장까지 30분전인데도 사람들이 줄을 엄청 길게 서더군요. 좋아하는 작가님에게 싸인받으시려고 그러나? 아무튼 그래서 저희도 줄서있었습니다. 그런데 갑자기 어제 만났던 교토대 코치님에게서 연락이 왔는데....

 

교토대 코치님: 도쿄공대 코치님과 mirror contest 돌 예정인데 ,같이 하실래요?

 

갑자기 mirror contest 같이 뛰자는 연락이 왔습니다. 그 연락 보고 옆에 있던 Sait2000님과 ?????????ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ이게무슨일임ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ엌ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ하고 한참동안 웃었네요. 그런데 Sait2000님 혼자 두고가긴 또 그래서 같이 PS하는 친구 있는데 그 친구도 데려가도 되냐고 했더니 OK사인이 나서, 9시 50분즈음 그러니까 본대회 10분전에 갑자기 mirror contest 참가하는 팀이 결성되었습니다! (???) Sait2000님도 내가 오타쿠행사가서 팀연습은 해보긴 했는데 살다살다 ICPC 본대회장에서 외국인들과 보게될줄은 꿈에도 몰랐다고. 물론 저도 몰랐어요. 일본분들에게도 물어보니 외국인들과 팀전하는것도 처음이라고 하고 아니 그냥 다 처음이라 권유받은 저희도 권유한 일본팀들도 이게 무슨상황임 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ하고 서로 얼터져서 웃고만 있었네요. 특히 저랑 Sait2000님은 ICPC 참가자도, 코치도, 스태프도 아닌데 말이죠. 


아무튼 그렇게 본대회 10분전에 결성된, Onsite Coaches팀에 대해서 설명하자면

 

1. tatyam : 일본인으로 도쿄공대 코치님입니다. 현역때 워낙 실력자로 유명하셔서 설명 안해도 아시는분들이 많을거라 생각합니다. 코드포스 최대 레이팅은 누텔라로, 명실공히 저희 팀 최고 에이스입니다.

 

2. naniwazu: 일본인으로 교토대 코치님입니다. 이 팀에서 유일한 파이썬 사용자이시며, 앳코더 최대 레이팅 2320이신 상당한 실력자분이십니다. 

 

3. hyperbolic: 접니다. 코드포스나 앳코더같은 CP사이트를 많이해서 손이 정말 빠르고 문제에 관한 직관이 강력하지만 ICPC류의 대회는 많이 다뤄보지 않아 약합니다. 그래도 코드포스 레이팅 최대 2600을 찍어봤던지라 기본기는 충분하다고 생각합니다.

 

4. Sait2000: 놀러온 한국인입니다. 자신이 코드포스 퍼플이라고 계속 강력하게 주장해서 일단 코드포스 퍼플, 팀 최약체라고 말하긴 하겠습니다만 이사람 현역때 제가 이겨본적이 거의 없을 정도로 잘합니다. 그런데 자꾸 퍼플이라고 주장하니 그냥 팀의 기만러를 담당하고 있다고 하겠습니다.

 

보시면 알겠지만, 팀 꽤 쎕니다. 네명인것도 있지만 여기서 아무나 한명을 빼더라도 아마 지금 ICPC 본대회 치고있는 현역팀도 대부분은 가볍게 이길정도로. 다만 문제가 있다면 5시간동안 일본어로만 대화해야 한다는것. 문제 풀이 서로 공유하고 의견 나누는 것을 5시간동안 계속 일본어로! 세상에. 과연 언어의 장벽이 팀의 퍼포먼스에 얼마나 영향을 미칠까요? 깨달을 수 있는 좋은 기회가 되겠군요.

 

팀의 마스코트...는 아니고 tatyam님의 애착인형입니다. 아르케아 캐릭터래요. 대립이랬나?

 

ICPC 스태프들로부터 VIP ROOM을 대접받고, 거기서 팀전을 할 준비를 갖췄습니다. 실제 ICPC 처럼 1컴을 쓰기 위해서 한사람이 컴퓨터를 만지면 다른 사람은 칼같이 손을 떼는 식으로 진행했습니다. 또한, 컴퓨터를 가지고 있는 분들은 일본분들이라(한국사람들은 오늘 팀전 하게될줄 꿈에도 상상하지 못했기에) 일본분들만 구현하고, 한국인들은 풀이만 알려주는 식으로 했습니다.

 

아, 또 대회 시작전에 사소한 이슈가 발생했는데.... 바로 팀의 국적을 어떻게 설정하느냐입니다. 뭐 거의 모든 팀이 같은 나라에서 왔으니 큰 문제가 없었겠지만 저희 팀은 일본인2 한국인2라는 절묘한 밸런스를 가지고 있어서 어느쪽 국기로 해도 ㅎㅎㅎ....같은 반응이 나올 수 밖에 없어서.... 결국 "어짜피 우리 일본어로만 소통할건데 그냥 일본국기 쓰죠" 라고 합의(?)를 봐서 일본국기로 참여했습니다. 매국노 아님

 

3. 대회 진행

 

이하는 대회 문제 리뷰입니다.

 

처음에 저는 tatyam님과 A번을 봤습니다. 시작부터 거대한 게임 얘기가 나와서 "아 이게 바로 ICPC식 똥문제지" 라고 생각하고 읽는데.... 끝이 없더군요. 결국 지쳐서 A번 입력부터 보러 갔는데 세상에 interactive!!!! tatyam님과 저는 바로 경악을 하고 다음 문제로 넘어갔습니다. 도대체 무슨 정신으로 이런걸 낸거임????

 

B는 살짝 읽어보니 NP비슷한 느낌이 나서 싸한 느낌에 바로 패스. C는 읽기 싫게 생겨서 패스. D를 봤는데 보자마자 음? 할만하더군요. 손으로 조금 끄적여보니 바로 전략이 나오길래 tatyam님에게 전략을 일본어로 알려주고 검증받았습니다. LGM이 맞다고 하면 맞는거지 암. 다만 D 코딩 들어가기 전엔 naniwazu님이 M번을 구현하고 있어서 검증시간을 조금 더 가졌고, M AC가 나오자마자 D를 구현해서 바로 AC맞았습니다. 그리고 D 맞자마자 다시 naniwazu님이 L을 푸시던데 L,M이 가장 쉬웠던 문제였나 봅니다.

 

3문제를 맞은 시점에서 대충 본대회 슼보를 보니 C,E,G정도가 후보로 남았더군요. C는 그런데 읽었는데 cut edge 찾는 조금 귀찮은 문제, E는 트리DP같아보이는 문제? 그리고 G는 모르겠습니다. 아무튼 또 naniwazu님이 어느순간 C랑 G를 풀어오셨더군요. 저는 tatyam님과 E를 잡았는데 생각보다 전략이 안나와서 놀랐습니다. 그러다가 제가 서브트리수 balancing하면 되지 않겠느냐 라고 했고 소트 + 좌우좌우 이런식으로 서브트리 넣으면 된다는걸 확인해서 tatyam님이 그대로 구현에 들어갔었습니다. 그런데 이상하게 계속 틀리더군요. LGM이 구현을 틀릴리가 없다, 이거 우리문제다 하고 한참을 그렇게 디버깅하는데.... 트리 루트가 항상 1이란걸 Sait2000님이 말씀해주시더군요. 아 ㅋㅋ 바로 고쳐 맞았습니다. 이런

 

6문제정도 풀었을때 이제 I가 남았는데, 이거 슈퍼 구현문제다 하고 다들 푸는걸 거부하더군요. 사실 뭐 본대회면 짰겠지만 본대회도 아니니 그러려니하고 재밌는 문제 보러갔습니다. 저는 F랑 H를 봤는데, H는 조합론이여서 이건 내가 강점인 분야구나 해서 제가 최대한 풀어보려 했습니다. 엄청 어려웠는데 일단 작은 N에 대해서 답을 브루트포스로 구하고, 그에 맞춰서 전략을 한번 구상해보니 전략이 나오더군요! 식정리좀 끄적였더니 N이 3의배수냐에 따라 convolution으로 잘 계산이 가능한 무언가가 튀어나왔습니다. 그런데 문제가 임의 mod FFT더군요. "아니 임의 mod FFT는 좀 ㅋㅋ"라는 의견에 의해 풀이는 냈는데 구현 파업으로 인해 풀지는 못했습니다. 사실 저라도 임의 mod FFT 풀기싫음.

 

K번은 기하인걸 확인했는데 이것도 슈퍼 구현문제다 하고 귀찮아하다 할게 없어서 잡고 짰습니다. 전 문제도 안읽어봤는데 알아서 잘 짜오시더군요. 그런데 진짜 고통받는게 느껴졌습니다. 아니 구현좀 제발 그만내~~~~

 

한 남은 시간 2시간정도 있을때 F를 봤습니다. 엄청 어렵더군요. 저, tatyam님, Sait2000님 서로 머리를 맞대서 생각하는데 Sait2000님이 이거 max기준으로 좌우나눠서 생각하면 어떻겠냐고 의견을 줬고, 전 그걸 듣고 "카르테시안 트리 말하는거임?"이라고 물었는데 뭔지 모르신다고 하더군요(...) 그런데 옆에서 tatyam님이 카르테시안 트리 키워드 듣고 곰곰히 생각하시더니 "이거 x랑 y 문자열의 cartesian tree가 같으면 CPequivalence다" 라고 주장하셨는데 제가 x_i 와 x_j가 같은 경우들 때문에 잘 안된다고 의견을 냈습니다. 그리고 edit distance니까 subsequence matching을 최대화 해보는건 어떠냐? x의 subsequence와 y의 subsequence의 cartesian tree가 일치하도록 최대 길이 subsequence 잡는 문제로 치환되는거 아니냐, 했더니 더 생각해오시다가 tatyam님이 풀이를 완성해오셨습니다! 그리고 대충 구현하셔서 맞았더군요.

 

이 시점에서 저희는 8문제를 풀었고, 30분정도 남았습니다. 남은 할만한 문제는 H, I, J정도였는데

I: 본대회의 거의 모든팀이 전부 푼, 쉬운문제인게 거의 확실한 문제지만 구현하기 싫음 ㅅㄱ 라는 이유로 때려친 문제

H: 수식을 정리해서 임의 mod FFT만 짜면 100% 맞는게 확실한 문제지만 임의 mod FFT 구현하기 싫음 ㅅㄱ 라는 이유로 때려친 문제

J: 깊게 관찰하진 못했지만 2D 세그로 적절히 되지 않을까? 하고 직관만 얻고 끝난 문제. 만약 이 직관이 맞아도 팀노트도 하나도 안가지고 온지라 2d 세그를 잘 짤 자신도 없었고. (나중에 보니 실제로 2D segtree더군요)

 

그래서 대충 밍기적대다가 대회 15분 남았을때 그냥 자체적으로 알아서 끝냈습니다. 미러는 10시30분부터 3시 30분까지 진행되었던지라 이때가 3시 15분이었는데, 본대회가 끝났을 시점이라 사람들 만나러 가고 싶었거든요.

 

그렇게 저희 팀은 8솔브로 마무리했습니다. 각잡고 했으면 10솔브까지는 했었을것 같은데 다들 늙고 구현할 힘이 없었던게 컸네요 하하

 

4. 대회 이후

대회가 끝나고 사람들 있는곳으로 올라가서, 본대회 친 사람들과 스태프들과 얘기했었습니다. 왜 선배님이 거기서 나오냐고(...) 눈치주는 후배들은 덤. 그러게요. 저도 오늘 아침만해도 이렇게 될줄 몰랐는데. 대회 끝나고 일본 코치들 수고했다는 의미로 제가 아이스크림 사다줬습니다. 정확히는 젤라또. 저도 좀 먹고, 다들 스폰서 세션이나 풀이해설 듣고있을 때 저는 남는 시간동안 티켓을 샀지만 결국 못간 일러스트페어를 보러 갔습니다. 그런데! 너무! 늦게와서! 일반입장이! 마감되었대요!!!! 어흑 내 11000원 돈만내고 뭐 보지도 못했네 읗ㅎㅎ그흑ㅎㄱ

 

스코어보드를 보면서 이야 일본팀 엄청 잘했네~ 라고 감탄하고 일본팀에게 안부인사 보내고, 사진찍어주고, 그리고 한국인들과 모여서 저녁을 먹었습니다.

 

대회 전에는 술을 못마셨지만 대회가 끝났으니 술을 마실 수 있다!

 

그냥 아무거나 먹으려고 하는데 같이 있던 테이블에 다른 팀이 자신들이 상탔다고 저녁을 쏘시더군요. 그런데 어느 팀인지는 잘 모르겠어요. 정확히는 제가 저때 5시간넘게 일본어로 대화하면서 문제품 & 아이스크림 사러 이리저리 뛰어다님 & 어제 23명 밥약속 조율하느라 무리좀함 이슈로 너무 힘들었던지라 제정신이 아니었거든요. 뭔가 밥도 어캐저캐 정신없이 먹고 그대로 포항가는 마지막 버스 타고 부산에서 포항으로 내려갔습니다. 기숙사 도착하니 대충 자정정도였는데, 씻지도 않고 바로 침대에 쓰러져서 잠들어서 일어나보니 일요일 오후 6시 30분이었습니다(...) 장장 18시간을 밥도 안먹고 내리 잔건데, 일요일 오후 6시에 unusual time 코드포스가 있어서 부랴부랴 코드포스 봤습니다. 그런데 피곤이 안풀렸는지 코드포스 보다가 잠들어서(...) 대회는 역대 최악으로 망치고 말았네요 하하.

 

아무튼 이렇게 늙은이의 ICPC 온사이트 후기가 마무리되었습니다. 대학교 4학년때 마지막으로 본 ICPC가 2019년인데, 6년이 지난 졸업한지 한참 된 지금 이렇게 온사이트를 보게될줄 진짜 꿈에도 몰랐습니다. 그것도 일본인과 팀맺어서. ICPC랑 아무 관계없는 일반인이 외국 팀에게 현장에서 납치당해서 5시간동안 온사이트 보게 될 확률은? 저도 모름 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

읽어주셔서 감사합니다.

'잡담' 카테고리의 다른 글

또 일본 여행을 다녀왔습니다(2)  (2) 2024.08.03
또 일본 여행을 다녀왔습니다(1)  (0) 2024.08.03
Grand Arena Party 후기  (2) 2024.02.07
일본여행을 다녀왔습니다.  (5) 2022.11.21