본문 바로가기

알고리즘/후기

2023 ICPC 본선 후기

사실 결론 부터 말하자면 개같이 망했다.

 

 

이미 지난 일이기 때문에 슬픔은 뒤로 하고 무엇이 우리를 이렇게 만들었는가에 대해서 생각해봤다.

 

D Fraction [ -9 ]

우리를 말리게 한 장본인이다. c가 이 문제를 처음보고 구현문제라 하고 코드를 작성하였다. 구현하는데 1시간 가량 걸렸던것같은데 지금 보니 퍼솔이 7분이란게;; 아무튼 D를 구현할 동안 나머지는 각자 풀린 다른 문제들을 읽어보고 있었고 우선적으로 풀어야될 문제가 D, G, I 3개라는 사실을 깨달았다. 테스트 케이스 다 통과하는걸 보고 제출하자고 했는데 틀렸습니다. 가 나오고 이때부터 불안함이 목 뒤를 스쳤다.

 

I Product Delivery [ -3 ]

D를 디버깅의 지옥으로 보내놓고 내가 본 문제는 이 문제였다. 수십번 읽어봤는데 문제가 이해가 안가서 이렇게 많이 풀린거면 어려운문제가 아닐텐데 생각하며 문제를 봤다. 하지만 어떻게 해석해도 예제 2번과 예제 3번의 출력이 나올수가 없어 결국 d에게 해석을 봐달라고 했다. d는 이 당시 D를 같이 디버깅 하고 있었다. 

 

2시간 가량 지나고 D가 세번째 예제가 잘 나오는걸 보면 오버플로우나 정확성 문제 보다는 잘못된 데이터일때 판단하는 로직에 문제가 있다고 생각하여 그부분을 집중적으로 보고 파이썬으로 코드도 다시 짜봤지만 D는 틀렸습니다만 내뱉었다.

 

c가 I번 해석에 확신이 없었지만 유추된 데이터로 코드를 짰는데 끝나고 다른 사람들 풀이를 들어보니 해석은 잘됐던 것 같다. 유니온파인드 이용해서 N^2으로 보는 것을 뒤에서부터 끌어올리는 방식으로 구현했는데 틀렸습니다를 내뱉었다. 사실 이 시점에서 D를 다시 짜는것도 시간이 부족해 보였고 G번을 python set이용해서 구현해보았는데 시간초과를 내뱉었다.

 

그렇게 우리는 0솔브가 되었다.

 

D, I번은 왜 아직도 틀렸는지 모르지만, 뭔가 틀린 예제가 있었나 보다. 마지막 ICPC를 아쉽게 마감하는 것 같지만, 뭐 인생이 끝난건 아니니까 

 

 

집에 돌아와서 나중에 문제가 나왔다 하자마자 업솔빙을 했는데, 그때 풀리지 않던 문제가 왜이렇게 잘 풀릴까... 싶었다.