Codeforces Round 880 Div. 2
6월 18일에 진행한 코드포스 880번 대회 일지입니다.
드디어 올랐습니다. 델타는 +112입니다. 그런데도 고점이 아닙니다.
0:00~0:02
- A번을 잡았습니다.
- 간단하게 입력을 받아서 각 원소의 등장 횟수를 카운팅한 다음 이 수열의 단조감소성을 확인하면 되는 문제였습니다.
발상에 1분, 구현에 1분을 사용했습니다.
- 풀고 나니 16등이었습니다.
0:02~0:09
- B번을 잡았습니다.
- 수학 문제로, 입력값들 사이의 사칙연산으로 답을 구할 수 있었습니다.
- $min({m(k-1)/2,((k-1)/2n/k)*k})$
발상과 계산에 6분, 구현에 1분을 사용했습니다.
- 풀고 나니 6등이었습니다.
0:09~0:56
- C번을 잡았습니다.
- 거의 처음 보는 유형이었습니다. 잘하면 $O(1)$에도 계산할 수 있을 것 같았고, 처음에는 그렇게 계산해야 하는 줄 알고10 10분 정도 생각했습니다.
- 그러다가 $O(10^A)$ 정도에 계산해도 터지지 않는다는 것을 깨달았고, A, B, C의 크기에 따라 케웍을 하는 풀이를 10분 정도 구현했습니다. 풀이가 너무 길어졌고, 시간 안에 구현이 가능하기는 할까 싶었습니다.
- 생각해보면 이 풀이도 $O(10^A)$에 비해 매우 빠른 풀이일 것 같습니다.
- 근데 그럴 필요가 없었다는 것을 깨닫고, 그냥 A의 모든 값에 따라 B의 개수를 계산하는 코드를 짰습니다. 구현에 10분, 디버깅에 15분 정도를 사용했습니다.
- 생각해보면 훨씬 더 빨리 풀 수 있던 문제인 것 같습니다. 발상에 대한 더 많은 연습이 필요할 것 같습니다.
발상에 20분, 구현에 10분, 디버깅에 15분 정도를 사용했습니다.
0:56~1:30
- D번을 잡았습니다.
- 35분 가까이 머리를 굴렸습니다.
- 머리가 하얘졌습니다.
- 포기했습니다.
- Div.2 솔브 수가 10명이 안 된 것으로 기억합니다.
1:30~2:00
- 핵을 했습니다.
- A번 코드 20개와 C번 코드 2개를 검토했습니다. B는 수학이 아닌 풀이가 많을 것 같아서 보지 않기로 했습니다.
- 핵을 하지 못했습니다.
후기
Great AGC Contest
2C와 2D 사이 난도 갭이 너무 크지 않았나 싶습니다.
실제로 1B를 포기하고 1C를 푼 Div. 1 응시자도 많았고, 대회 후에 난이도가 1A<1D<1C<1B 였다던가, 1C를 다들 랜덤으로 풀었다던가 하는 얘기가 많았습니다.
2B도 대회 중간에 지문이 수정된 것으로 기억합니다. 전 왜 그 전에 맞았을까요?
아무튼 1782->1894로 112점 올렸습니다. 6점만 더 올랐으면 좋았겠네요. 이렇게 된 이상 CodeTON도 응시해야 되겠습니다.
This post is licensed under CC BY 4.0 by the author.