BaaaaaaaarkingDog
코딩, 해킹
2018 ICPC Seoul Regional Preliminary

전날 팀노트 만드느라 새벽 4시까지 고생을 하다가 대회를 쳤다. 조금 피곤하긴 했지만 엄청 몸상태가 나쁘지는 않았다. 팀원 실명을 블로그에 쓰는건 그런데, 또 팀원1 팀원2라고 적는건 너무 삭막하니까 그냥 닉네임 그대로 Utenie와 0xrgb라고 써야겠다.


맨 처음에 A B C D(Utenie) / E F G H(0xrgb) / I J K L(나)로 나누어가졌다. 등록 문제를 먼저 확인하고 제출했는데, 실수로 다른 파일을 제출해 틀렸다. 이 때 살짝 당황스러웠다. 아무튼 다시 제출해서 맞았다. 이후 J K L을 읽었는데 한글 문제가 없는걸 보고 여긴 어려운 문제들 집합소구나 싶어서 읽지 않고 아무거나 한글 문제 있으면 넘겨달라고 했다.


이 때 A를 받아서 보는데, 분명 쉬운 문제일텐데 당황해서 그런지 예제가 어떻게 나오는지조차 감이 안왔다. 그래서 0xrgb에게 A를 주면서 분명 쉬운 문제인데 난 모르겠다고 했다. 그러던 중 Utenie는 8분에 B를 제출했는데 틀렸다. 다행히 간단한 오류였는지 3분 후에 바로 고쳐 AC를 받았다. (B 11분 AC)


0xrgb가 A번 코딩에 들어갔다. 0xrgb가 A를 짜던 중 나는 F G의 풀이가 가닥에 잡혀서 끝나는대로 바로 내가 F와 G를 짜겠다고 했다. 16분에 A를 제출했는데 틀렸다. 내가 자리를 넘겨받으려고 컴퓨터에 앉았을 때 WA를 받았고, 코드를 보는데 int overflow를 바로 찾아서, 그 즉시 수정해서 제출했다. (A 18분 AC)


내가 F를 3분 컷하고 G를 9분 컷했다.(F 21분 AC, G 30분 AC) 이 때 전체 4위로 올라섰다.


Utenie가 E 코딩에 들어갔고, 그 사이 0xrgb가 L을 보고 나는 H를 열심히 해석하고 있었다. 해석을 해보니 간단한 문제였고, 그 사이에 Utenie는 E에서 WA를 받았다. WA를 받은 후 디버깅을 좀 하다가 일단 내가 넘겨받아 H를 짰다.(H 59분 AC)


Utenie가 E에서 한 번 더 WA를 받았고 이래저래 고민을 하다가 일단 L을 먼저 짜기로 합의를 봤다. E에서 2WA를 받을 당시 상위 30개 팀에서 2/3개 팀을 제외한 나머지 팀들이 전부 L을 해결한 상황이었기에 E를 잡은 것이 결과적으로 안좋은 선택이 되었다.


0xrgb가 L을 짰고, 중간에 예제 맞왜틀을 살짝 하긴 했지만 어찌됐든 큰 어려움 없이 해결했다. (L 87분 AC)


Utenie가 E에서 발생한 문제를 잘 해결해 E도 넘어갈 수 있었다. (E 93분 AC)


당시 스코어보드를 볼 때 정황상 K가 풀만한 문제임은 확실해보였고, J를 일단 짜고 있을까 말까 고민을 하다가 그냥 말기로 했다. 솔직히 좀 자신이 없었다. 셋 다 K를 보면서 고민만 하고 있다가 0xrgb가 풀이를 착안해냈다. 시간이 조금 촉박한 상황이었어서 일단 풀이의 개요만 듣고 내가 바로 코딩을 하기 시작했고, 예제도 안나오는 실수투성이 폐기물 수준의 코드를 만들어냈지만 3명이 달라붙어서 급박하게 오류를 찾은 덕분에 빠르게 잘못된 점들을 고쳐 제출해서 맞았다. (K 159분 AC)


7문제 / E / K / C D J 로 나누어진 느낌이었고, E, K가 굉장히 중요했는데 Utenie랑 0xrgb가 각각 아이디어를 잘 내줘서 9 solve에 도달할 수 있었다. 그렇지만 설/카를 제외하고라도 우리 위에 1팀, 우리와 비슷한 시간 페널티에 2팀이 더 있어서 서울 리저널이 쉽지 않을 것 같다. 그리고 만약 C D J말고 K보다 조금 더 어렵지만 적당히 풀 만한 문제 1개가 더 섞여있었다고 친다면 우리는 시간이 부족해서 풀어내지 못했을텐데 다른 팀들은 풀어낼 수도 있었을 것이다.


보완해야할 점을 꼽자면

- A/B/I에서 1 WA를 받은 것

- 결과론적인 이야기일수도 있지만 E에서 일단 WA를 받은 후에 빠르게 판단해서 L을 먼저 짜는게 어땠을지

- K를 더 빨리 해결했어야 하는데


이 정도.

  Comments
댓글 쓰기