대회 후기/UCPC

2023 UCPC 예선 후기

leo020630 2023. 7. 2. 01:09

서론

올해도 어김없이 UCPC에 출전하였다. 작년에 팀을 했던 선배들은 본인들이 속한 집단 (slah007 - 군대 동기, qjatn0120 - 대학원생) 분들과 함께 나갔고, 나는 ICPC 팀대로 나가려 했으나 어차피 제대로 나가도 수상은 힘들 것 같아서 본선 진출 팀 수나 늘리기 위해 kwoncycle과는 갈라지고, 원래 같이 하기로 했던 petamingks에 1학년 후배인 minsung05를 영입해 나가게 되었다.

 

팀명은 당신을 대신해 UCPC 팀명을 정해드릴게요 (프로그래밍 용사, 디버그의 달인, 컴파일의 지배자) 이다. 마땅한 팀명이 떠오르지 않아 최고의 작명가에게 부탁한 결과이다. 

팀 연습을 대회 전에 2번 정도 했는데, 대충 본선은 나갈 수 있을 것 같아서 안심하고 대회를 쳤다.

 

대회 중

대회 링크: https://www.acmicpc.net/category/detail/3613

종료 공지글: https://www.acmicpc.net/board/view/120816

petamingks가 앞, 내가 가운데, minsung05가 뒤를 보고 시작했다. 10문제일 줄 알고 3/4/3으로 나눴는데, 어쩌다 보니 3/5/3이 되었다. 초반에만 각자 문제 보고 이후부터는 바로 스코어보드 따라가기만 해서 별 의미는 없다.

 

~0:05

D를 읽었는데, 대충 쉬웠다. 퍼솔각일 것 같아서 코딩을 열심히 했더니 퍼솔을 먹었다. petamingks 역시 A를 잘 풀어주었다.

 

~0:30

B가 풀렸는데, petamingks는 그래프 전문이 아니라 내가 보러 갔다. 초반에 문제를 잘못 읽어서 좀 헤멨는데, 다 읽고 나니 대충 스몰투라지를 박으면 될 것 같았다. 바로 짰는데 틀렸다. 큰 문제는 아니어서 5분만에 고칠 수 있었고, 예제도 하나 만들어서 돌려본 후 AC를 받았다. petamingks와 minsung05는 각각 스코어보드에서 풀린 I, K를 잡고 있었다.

 

~0:49

K, I는 많이 풀렸길래 후배들을 믿고 나는 C를 보러 갔다. C는 뭔가 무섭게 생겼지만 다 읽으면 그냥 고등 기하 문제를 하나 푼 후 MST를 돌리면 됐다. 예전 기억을 떠올리면서 재미있게 풀었다. 실수 오차 때문에 걱정했는데 한번에 AC. 그 사이 petamingks 역시 I를 잘 풀어주었다.

 

~1:20

다음으로 잡아야 할 문제가 F라는 사실을 깨닫고 한숨을 쉬며 잡으러 갔다. 열심히 구현하는 사이 풀렸어야 할 K가 잘 되지 않아 petamingks와 minsung05가 같이 잡았다. 문제를 대충 보고 파라메트릭을 얹어 보라고 했더니 petamingks가 잘 풀어주었다.

 

~1:41

역경과 고난의 구현 끝에 기본 예제와 손으로 만든 몇 개의 예제가 잘 나와 F를 냈고, 한 번에 맞았다. minsung05는 안 풀린 문제들을 보고 있었던 것 같고, petamingks는 E를 잠깐 보다 H를 보더니 풀었다고 한 후 코딩에 들어갔다.

 

~3:00

나는 G를 1시간 동안 봤는데, 하나도 모르겠어서 H를 짜는 petamingks를 열심히 응원했다. petamingks는 1시간에 걸쳐 4000B짜리 코드를 만들어냈지만, 채점이 꽤 오래 돌다 런타임 에러를 뱉었다. chatGPT까지 동원했지만 결국 문제의 원인을 찾지는 못했고, 결국 7솔로 마무리했다. 대회 끝나고 런타임 에러 이유를 확인해보니 별 거 아니라 몇 글자 고치고 맞았다고 한다.

 

 

최종 31등, 7솔 중 2등으로 마무리했다. 평소랑 다르게 긴장을 하고 쳤기에 페널티 관리는 나름 잘 되었지만, 사실 페널티 관리가 잘 되었다는 뜻은 체급이 높은데도 불구하고 다음 문제를 풀지 못했다는 뜻이기 때문에 약간 아쉽다. H를 풀었으면 20등 언저리에 있었을 것 같다.

 

문제별 요약

A (B4, solved by petamingks) : 대충 브론즈 문제라고 한다.

B (P3, solved by leo020630) : 스몰 투 라지 테크닉을 알면 별로 어렵지 않은데, 이걸 알고 짤 수 있는 팀이 64팀이라는 사실에 감탄을 금치 못했다.

C (G1, solved by leo020630) : 기하 식은 그냥 적당히 잘 정리해주면 되고, 그 뒤는 그냥 MST를 돌리면 된다.

D (S3, solved by leo020630) : 같은 자리에 있는 알파벳은 모두 같아야 하니 최빈값을 구해주면 된다. 퍼솔 : P

E (D3, Not solved) : 문제를 읽고 강하게 풍겨오는 앳코더 냄새에 H 모 선배님의 문제임을 직감하고 넘겼다. 이후 다시 잠깐 읽었는데 너무 어려워서 다시 도망쳤다. 놀랍게도 출제자는 H 모 선배님이 아니라 다른 앳코더 고수분이었다.

F (P3, solved by leo020630) : 관찰을 하면, 행과 열의 기우성에 따라 4개의 그룹은 S 연산을 사용하지 않는 이상 항상 뭉쳐다닌다는 것을 알 수 있다. 따라서 4개의 그룹을 잘 묶어 관리해주고, S 연산은 그때그때 위치의 숫자가 무엇인지 구한 후 초기 게임판에서 위치를 바꿔준다 생각하면 된다. 이것도 관찰, 구현 다 어려웠는데 50팀이 넘게 풀었다.

G (D5, Not solved) : 7솔 후에 1시간 가량 보았는데 풀이를 찾지 못했다. 뭔가 떠오르는 키워드들은 있었는데 체력 이슈인지 정리가 잘 되지 않아 포기했다.

H (P1, upsolved by petamingks) : 애드혹+구성적 문제이다. petamingks가 풀이를 찾고 1시간동안 구현했으나 사소한 실수로 대회 시간 중에는 AC를 받지 못했다.

I (G4, solved by petamingks) : 문제를 읽지 않았다. 후배가 잘 풀어주었다.

J (D3Not solved) : 문제를 잠깐 읽었는데, 스코어보드를 본 후 대충 어렵겠거니 하고 넘겼다.

K (G2, solved by petamingks) : 뭔가 파라메트릭을 얹으면 될 것 같은 그리디 문제이다. 키워드를 말해주었더니 후배가 잘 풀어주었다.

 

느낀 점

H를 거의 다 풀긴 했지만 여튼 7솔로 대회를 마무리했는데, 컷이 7솔도 아닌 7솔 중간이었다. 플3까지 빨리 풀거나, 플1까지 다 풀어야 본선이다. ㅋㅋㅋㅋ 진짜 잘하는 사람들이 너무 많다.  상위권 팀들은 E, G 같은 문제를 어떻게 3시간 안에 푸는지 정말 모르겠다. 그 외에는, 작년까지와의 팀 대회와는 달리 버스를 끌어야 하는 입장이어서 긴장감이 넘쳤다. 내가 미끄러지면 진짜 본선이 위험하겠다는 생각에 페널티 관리를 열심히 했다. 실제로 삐끗해서 1문제를 풀지 못했거나 페널티 관리에 실패했다면 본선에 못 갔다는 사실이 너무 아찔하다. 진짜 다들 너무 잘한다. 공부를 더 열심히 해야겠다..

'대회 후기 > UCPC' 카테고리의 다른 글

2023 UCPC 본선 후기  (7) 2023.07.24
2022 UCPC 본선 후기  (8) 2022.07.24
2022 UCPC 예선 후기  (2) 2022.07.03
UCPC 2021 본선 후기  (0) 2021.08.15
UCPC 2021 예선 후기  (0) 2021.07.31