Competitive Programming/Codeforces

대회후기: Educational Codeforces Round 102 (Rated for Div. 2)

Syphon 2021. 1. 16. 01:49

또 떨어진다...


A: Replacing Elements

쉬운데 어렵게 생각하다가 3분이나 걸렸다. 지금 생각하면 1분컷 문제...

3분: AC


B: String LCM

직관적으로 풀이가 떠올랐다. 두 문자열의 길이를 기준으로 lcm이 되도록 곱해준 후, 두 문자열이 일치하는지 확인하면 된다.

8분: AC


C: No More Inversions

오늘 레이팅 하락의 원인. 문제를 잘못 이해해서 50분가량을 날렸고, 제대로 읽은 이후에도 풀이가 떠오르지 않아서 결국 D로 넘어갔다. D를 해결하고 돌아와서야 제대로 된 접근을 시작했지만, 남은 시간이 너무 짧아서 대회 시간 이내에 해결하지 못하였다. Constructive algorithm 문제들은 너무 운빨을 많이 타는 것 같다..


D: Program

$x$의 최댓값/최솟값만 알면 해결되는 문제이다. 고로 각 쿼리마다 정해지는 구간에서의 최대/최솟값을 빠르게 구할 수 있으면 된다. 자연스럽게 세그먼트 트리가 떠올랐고, 이를 이용한 풀이 또한 금방 구상할 수 있었다. 하지만 세그먼트 트리 구현체가 C++로 되어있는 바람에, 파이썬에 비해 익숙하지 않아서 생각보다 오래 걸렸다. 또, 자잘한 버그들이 많아서 모두 디버깅하고 수정하기까지 오래 소요되었다.

1시간 47분: AC

대회 종료 이후, 파이썬으로 세그먼트 트리를 다시 짜 보았다. 하지만 TLE를 받더라... C++에 익숙해지는 것이 나을 것 같다. (파이썬으로도 통과 가능한 $O(n)$ 풀이 또한 존재함을 뒤늦게 발견하기도 했다.)


총평

딱히 못한 것은 아니었는데, C에서 너무 많은 시간을 낭비해버리고 또 풀지도 못하는 바람에 레이팅이 너무 많이 떨어졌다. 다시 1700대 레이팅으로 돌아올 줄은 상상도 못했다.

 

레이팅 변화 1857 - 76 = 1781

My Performance: ★★★☆☆


연습지