일상/대회 참가 후기

ICPC 2021 예선 후기

stonejjun 2021. 10. 10. 16:44

일찍 일어난 새는 벌레를 잡고, 일찍 쓰여진 후기글은 조회수를 얻는다. 자고 일어났는데도 딱히 후기글이 보이지 않길래 얼른 글을 작성하려고 한다. 

세팅이 처음이기도 하고, 불안하기도 하고, 다양한 감정에 1시에 대회를 치를 장소에 도착을 했다. 왔길래 아무도 없어서 근처 편의점에 가서 팀원들을 위한 데자와 6캔과 6초코바를 구매했는데, 봉투값 아끼려다가 힘들어 죽는 줄 알았다;; 곧이어 도착한 류트도 목마름을 호소했고 시작도 하기 전에 데자와 2캔을 소모했다.

데자와 : AC (-00 : 40) 
데자와 : AC (-00 : 40) 

얼마 지나지 않아 클리멕이 도착했고, zoom 세팅을 시작했다. 생각보다 조건이 까다로웠고, 조건을 만족시키기 위해서는 연습때와 다른 포메이션으로 앉아야 한다는 것을 깨달았다. 나와 클리멕이 프린트를 연습하는 것으로 준비는 끝이 났다. 

https://www.acmicpc.net/problem/4344 마냥 본선은 가겠지~~ 라며 웃다가도 이내 불안감이 엄습해 왔다. 한 번 말리면 겉잡을 수 없을 것 같다는 3시간 1컴의 압박이 크게 와닿았다. 그리고 대회는 시작했다.

문제를 열고 한글인 B, C를 보다가 전체 지문이 떠서 클리멕이 빠르게 프린트를 하러 갔다. 그리고 스코어보드를 보니 I가 풀려있길래 문제를 봤는데 ez sort problem 이어서 프린트를 가장 못하는 내가 빠르게 잡아 AC를 띄웠다. 

I : AC (00 : 10)

전체적으로 B는 대충 케웤이니 시간 남을 때 보자는 의견이었다. 그리고 일단 나는 미리 C를 찜해놓았다. 나와 류트는 A를 봤고 류트가 해석을 하고서는 모스라고 했다. 내가 지금 어짜피 노트북이 비니까 구현을 하자고 했고, 세그를 써서 루트로그 풀이를 류트가 짜기 시작했지만, 시간 제한 때문에 불안한 느낌은 있었다.
그와중에 클리멕이 그 다음 풀린 J를 보고 있었고, 300^3 돌죠? 라는 말과 함께 빠르게 풀이를 가져왔다. 여기서 류트가 A는 최대한 나중에 짜는 것이 맞다는 결단을 내렸고, 클리멕이 노트북을 잡아서 1틀을 했지만 뚝딱 해냈다.

J : AC (00 : 35) (+1)

나쁘지 않은 출발이었다. 나는 C 클리멕은 H 류트는 E를 잡고 있었다. 그 와중에 류트가 E에서 쓰이는 분산 식을 확실히 하려고 나한테 물어봤고, 기초통계학 A를 받았었던 나는... 까먹었다....  그래도 예제 만들어보니 식이 나오기는 했다. 류트가 4000*4000*30 을 외쳤고, 당연히 될 것 같아서 구현 시작. 빠르게 AC

E : AC (00 : 51) 

굉장히 나쁘지 않은 첫 한 시간. 그 와중에 클리멕이 H가 PST를 쓰면 된다는 결론을 냈다. 나는 C와 씨름을 하고 있었고, 묶어서 각 원판 묶음이 몇 번 움직이는지 식을 잘 세우면 될 것 같았다. 일단 예제는 대충 식이 나왔지만 왜 그렇게 나오는지는 미지수였다. 
클리멕의 다짯는데 이거 PST 안쓰는게 편할 것 같아요 이슈와 펜윅 무한루프 문제가 있었지만, 류트가 빠르게 0을 의심했고, 그 부분이 정확하게 들어맞아 고치고 낼 수 있었다. 
류트는 K를 보러 갔고, 나를 불렀다. 나는 다3 단백질 식별 문제인 줄 알았는데 아니었다. 여기서 류트가 위에서 부터 먹으면 된다는 핵심 관찰을 했고, 내가 깔끔하게 풀이를 완성했다. 그리고 나는 C를 풀러 갔고, 류트는 K를 코딩했다. 

H : AC (01 : 13)

류트의 K는 정답을 뱉지 않았다. 클리멕은 B를 보고 있었고, 그 와중에 나는 C의 풀이를 완성했다. 류트의 코드를 출력하고 내가 코딩을 했는데 내 코드도 WA를 뱉었다. 완벽한 위기였다. 나온 것은 4솔뿐. 이번에는 내가 코드를 뽑고 류트가 디버깅을 했다. 누가 보더라도 이건 말렸다고 할 수 있는 중반 상황이었다. 초반에 잘 벌어놓은 것을 다 까먹었다. 그래도 풀이는 나와있었고, 디버깅만 하면 되는 문제이긴 했다. 
굉장히 다행히 류트는 디버깅을 성공하였다. 하지만 나는 도저히 문제점을 찾을 수 없었고, 내가 한 관찰과 내가 세운 식을 정리하고 있었다. 그리고 B의 케이스를 다 나눈 클리멕이 B를 잡기 시작했다.
그러던 중 나의 너무 많은 관찰에 휩쓸려서 1개짜리 원판 묶음은 아무 효력을 내지 않는다는 관찰을 발견했다는 사실을 놓쳤던 것을 알아냈다. 잠깐 컴퓨터를 뺐어서 디버깅 후 AC. 다행이도 안정궤도에 다시 돌입했다. 

K : AC (01 : 53)
C : AC (02 : 12)

클리멕의 B는 거의 완성되었고, 나는 A가 마려워서 고민했다. PST, 랜덤 등을 생각했지만 방법이 떠오르지 않았다. 그와중에 B는 음수가 나오고, 더 크게 나왔다가, 더 작게 나오는 등 고전을 면치 못했다. 류트는 옆에서 B를 도와주고 있었고, 나는 A에 대한 미련이 남았다.

그러자 류트는 강력하게 A에 대한 미련을 버릴 것을 주장했다. 그럼에도 A에 대한 미련이 조금 남긴 했지만... 아마 저 문제는 내가 모르는 힐베르트 mo's 일거야! 라는 신포도 마인드를 장착하고서 미련을 깔끔하게 버릴 수 없었다. 얼마 남지 않은 시간, 남은 것은 빡구현. 보이지 않는 답, 어디서 틀리는 지도 확실치 않았다. 
그래도 계속 디버깅을 했고, 내가 "그니까 r에서 이게 A고 이걸 뺀거지?"라고 물어보니까 갑자기 클리멕이 놀라더니 입력 쪽으로 커서를 옮겼다. 그리고 >>A>>B를 >>B>>A로 바꾸었다... 하지만 그래도 답은 나오지 않았다.

그러고서 계속해서 디버깅에 큰 진전이 없었다. 그러다가 말도 안되는 위치에 접근한 것을 확인하고, 클리멕이 x,y 순서가 틀린 부분이 꽤 있다는 것을 발견했다. 이를 고치고 예제를 넣는데... 어라? 설마? 
그리고 제출을 했고, 우리는 7번째 초록색 글씨를 볼 수 있었다.

B : AC (끝나기 : 10분전쯤?)

스코어보드를 보며 팝콘을 뜯으며 마무리 했다.

7솔. 거의 본선 진출 확정이라는 나쁘지 않은 결과를 만들어 냈다. 하지만 그와 동시에 확실한 문제점도 보이게 되었다. 
우리 팀은 서로의 스타일이 깔끔하게 보완되어 팀합은 꽤나 좋은 팀이라고 생각된다. 하지만, 개인 기량이 더 높은 곳으로 올라가기에는 아직 부족한 것도 맞는 것 같다. 특히 구현에서 생각보다 잘 말리는 것이 문제였다. 열심히 노력해서 본선때는 더 좋은 성적을 낼 수 있기를.. 0e8 화이팅 !!!!!

'일상 > 대회 참가 후기' 카테고리의 다른 글

SCPC 2022 본선 후기  (4) 2022.09.17
UCPC 2022 본선 후기  (2) 2022.07.25
UCPC 2021 본선 후기  (0) 2021.08.19
UCPC 2021 예선 후기  (0) 2021.08.18
2021 Codejam 1A 간단 후기  (0) 2021.04.11