본문 바로가기

후기

2022 SUAPC Summer 후기

 

대회 시작 전

이번에도 지난 UCPC를 같이 나갔던 xhdtlsid2, dicohy27과 같이 나왔다.

xhdtlsid2은 그래도 ps를 꾸준히 해서 2000후반도 찍고 가슴이 웅장해지는 실력이 되었지만,

나와 dicohy27는 진짜 ps를 2달간 하나도 안했어서 사실 좀 미안했당.

 

그래도 민폐를 끼치지 않기 위해서 하루에 한 문제씩 골드를 풀었다.

https://www.twitch.tv/swoown

 

혼자 풀면 심심해서 방송을 키고 하루에 한번씩 풀었는데, 하다보니 실력이 좀 돌아오는 것 같기도 했다.

방송을 켰더니 생각보다 많은 분들이 봐주셨다. 평균적으로 10분은 봐주셨던거 같다.

방송을 보시는 분들 중에 고인물이 너무 많았기 때문에 무서웠다.

 

이렇게 대비를 하면서 대회를 대강 준비했었다. 팀연습은 안했음 ㅋㅋ

 

새벽 4시에 잠이 들고 휴대폰의 진동 소리에 잠에서 깼다. 오전 11시 56분이었다.

변명을 좀 하자면 대회 전날이 들어가있던 회사의 릴리즈 due였기 때문에 전날에도 새벽에 자게 됐다.

사실 그냥 비대면으로 하자고 했기 때문에 별 상관은 없었지만 아찔했다.

 

그냥 별 다른 전략은 없고 xhdtlsid2은 뒤에서부터 보고, dicohy27는 앞에서부터 보라고 시킨 다음에

나는 퍼솔 나온 문제들을 설거지하기로 했다.

 

B. 네비게이션 AC (0:07)

아니 대회 시작한지 얼마나 됐다고 갑자기 dong_gas가 있는 DS팀에서 3분만에 퍼솔을 내버렸다.문제가 풀린 걸 확인하고 바로 코딩에 들어갔는데도 7분에 솔브를 했는데, 3분솔브는 진짜 말이 안된다.단순 구현이고 내가 설거지하기로 했어서 바로 코딩하고 AC

 

F. 차의 개수 AC (0:13)

B를 제출했더니 또 다른 팀들이 F를 풀어놨다.

처음엔 dicohy27 한테 풀어봐라 하고 줬는데, 주자마자 어떻게 풀어야하는 지 떠올랐다.2^k 꼴로 출력하는게 이득임을 설명하고 코딩을 한 뒤 AC이와 동시에 xhdtlsid2이 본인이 C를 풀 수 있을 것 같다고 했다. 

 

C. 패스 First Solve! (0:22)

나와 dicohy27가 B와 놀고있을 때, xhdtlsid2은 C를 완탐을 하고 있었다.

출력해봤더니 홀수일 때는 불가능 하다는 점을 발견했다고 한다.

그다음 짝수인 경우에는 잘~~ 해주는 방법이 있다고 하던데 난 잘 모르겠다.

아무튼 C를 퍼솔해주면서 단독 3솔로 올라갔다.

 

I. 딸기와 토마토 1WA (1:02)

순탄히 진행되는 듯 했던 대회는 내 I번 삽질로 나락을 가게 됐다.

스코어보드에서 I번이 풀렸길래 나는 그나마 구현에 자신이 있었기 때문에 내가 하겠다고 했다.

구현을 하다가 중간에 뇌사가 와서 총 구현까지 30분정도 걸렸는데, 제출을 했더니 61% WA을 경험했다.

이때만 해도 조금만 고치면 될 줄 알았다.

 

L. 피라미드 First Solve! (1:07)

내가 뇌사가 와있던 동안 우리의 갓 xhdtlsid2은 기막힌 관찰로 또 하나의 퍼솔을 해냈다.

사실 팀원들은 좋아했던 것 같은데, 나는 I번에 정신이 팔려있어서 이 때를 기억하지 못한다. ㅠㅠ

암튼 개고수임

 

I. 딸기와 토마토 2WA (1:09)

첫 제출에 문제가 되는 로직을 발견해서 그 부분을 수정하고 무조건 맞겠다는 생각으로 제출했다.

근데 뭔 버근지 원래 61%였던 채점 현황이 33%에서 틀렸습니다로 바뀌는 현상을 목격했다.

이때 너무 싱싱미역 상태가 돼서 소통중이던 디코를 잠시 종료하고 노마이크 빡겜으로 들어갔다.

 

I. 딸기와 토마토 3WA AC (1:41)

2 x 2라는 악랄한 경우가 있는 것을 발견하고 이제는 무조건 맞겠다라고 생각했다.하지만 한 번 더 틀리고, 내가 K=1인 경우를 잘못 처리했다는 사실을 깨달아버렸다.해당 부분을 고치고 AC를 받은 뒤 내가 살아돌아왔다고 했다. 너무 삽질을 해 팀원들에게 미안해서 꼭 도움이 되겠다고 생각을 했다.

 

J. 김밥 AC (2:05)

dicohy27가 다른 팀들이 푼 문제들을 살펴보다 J번이 그냥 스위핑 세그문제라는걸 발견했다.

바로 xhdtlsid2에게 세그 빠른 구현 부탁 ㅎㅎ 이라고 넘겼더니 진짜 빠르게 AC 받았다.

이 문제가 좀 늦게 풀린 편이라 당연히 어려운 문제일 줄 알아서 다른문제부터 잡고있었는데,

진작에 볼 걸 이라는 생각을 했다.

 

M. My뷰 꾸미기 1RE AC (2:56)

김밥을 풀고 나랑 dicohy27가 M을 봤다.

좀 시간이 지나더니 dicohy27가 본인이 식정리를 했는데 구현이 좀 빡세니까 님이 좀 해주셈 ㅎㅎ를 시전했다.

나는 I번을 말아먹기도 했으니 이번에 쇄신하기로 했다. 그런데 식이 좀 많이 괴랄했다.

무슨 매 쿼리당 sum(factorial[i]^2) (1 <= i <= a) sum(factorial[i]^4)를 구하고,

팩토리얼의 팩토리얼의 psum을 구해야 했다. 

사실 그 때 M번은 별로 풀려있지 않아서 아 이정도면 못풀만 하지 해서 나는 이악물고 구현을 했다.

 

그 당시 식정리라고 받은 노트

def f(x, y):
    u = fac[x]*fac[y] % mod
    if x != 1:
        u = u * (pow(fac2[x], 2, mod) - fac4[x]) % mod
    else:
        u = u * y % mod
        print(u)
        return u
    u = u * pow(calc(1, x-1), -1, mod) % mod
    u = u * pow(calc(y - x, y - 1), -1, mod) % mod
    u = u * pow(pow(calc(1, x), 2), -1, mod) % mod
    u = u * pow(2, -1, mod) % mod
    print(u)
    return u
#그당시 저 식을 구현한 코드

그런데 너무 반례가 많이 나오는 거였다. 

아니 별로 없으면 처리해주면 되긴 하는데 너무 답이 다르길래 식정리를 다시 해줄 수 있겠냐고 물었다.

 

근데 다시 정리를 해보니 너무 아름다운 이항계수가 나오는 것이었다. ㅋㅋㅋㅋㅋ

그래서 일단 맞히는 것이 중요하니 내가 제출한다고 하고 킹이썬으로 제출을 완료했다.

시원하게 RE를 받고 나는 갑자기 뇌사가 왔다. 아니 파이썬이 구데기라지만 이렇게까지 구데긴가? 하면서

정신이 아득해질 때 쯤, 우리의 영웅 xhdtlsid2가 2분만에 c++로 짜서 AC 받아냈다.

 

여기까지 7솔이었고 이때 2시간 프리즈의 시작이었던 것 같다.

 

프리즈 (3:00)

프리즈 슼보

이제 우리에게 남은 시간은 2시간이고, 선택과 집중이 필요한 시간이었다.

가장 처음으로 노려야 할 곳은 푼 팀이 있는 K번과 E번이라고 생각했고, 각각 xhdtlsid2, dicohy27이 잡았다.

그리고 나는 H번을 잡겠다고 말했다. 이렇게 갠플이 시작됐다.

 

K. 줄 세우기 AC (3:44)

xhdtlsid2이 K번이 그냥 스몰투라지로 합치고 거꾸로 합쳐주면 될 것 같은데 풀사람? 이라고 물어봤다.

하지만 아무도 대답하지 않았다. 이따 말하겠지만 나는 그때 뇌사상태였고, dicohy27는 정신이 나가기 일보직전이었다.

그래서 그냥 xhdtlsid2이 또 하드캐리해서 풀어버렸다.

아니 퍼플이 되면 이정도는 그냥 푸는건가? 난 퍼플 못찍겠다.

 

E. 1-3 트리 9WA (4:12 ~ 5:00)

xhdtlsid2이 K번을 원콤내고 금의환향을 한 뒤, dicohy27와 합류하여 E번을 풀었다.

사실 팀원들이 이런 상태인지 난 잘 몰랐다. 1시간동안 열심히 하다가

다른 글들에도 출현하는 51%, 56%의 벽을 만나 산화했다.

 

H. 역삼역 1WA (4:29)

내가 대회 초반에 역삼역 문제를 보고 아 ~ 이거 lcp랑 마나커쓰면 되네~ 이거 할수는 있음 ㅋㅋ

이라고 할 수 있는 척을 하고 다녔다...

그랬더니 dicohy27가 아 ㄹㅇ 그럼 너 이거 풀면되겠네 해서 내가 맡게 되었다.

 

사실 A를 적용하면 풀 수 있다와 A를 적용해서 푸는 것은 1e9배의 차이가 나는 것 같다.

입풀이는 솔직히 누구나 내지... 아무튼 그 값을 톡톡히 치뤘다.

 

작년 고급반에 sa+lcp를 lky7673에게 배웠으니 최대한 풀어보려고 했다.

하지만 랭작용으로 몇문제만 푼 상태여서 이해도 이슈가 있었고, 마나커는 그런게 있다~ 라고 듣기만 해서 일단 구글링을 했다.

구현체가 있길래 가져와서 이것저것 해보는데 긴장을 하니 능지가 절반이 되더라.

 

갑자기 너무 기본적인걸 물어봐서 dicohy27가 님 대체 정체가 뭐임 이라고 했다 ㅋㅋㅋㅋ

아무튼 나는 대충 구현을 해서 냈더니 0% WA가 났다.

사실 미심쩍던 부분들이 몇 있어서 다시 구현해보기로 했다.

 

H. 역삼역 2WA (4:51)

먼저 잘못 생각한 점부터 고치기로 했다.

나는 f[i]를 i인덱스에서 가장 가까운 길이 K이상인 팰린드롬이 시작하는 부분으로 계산을 했었다.

하지만 i인덱스에서 가장 가까운 길이 K이상인 팰린드롬이 끝나는 부분으로 계산을 했어야 했다.

해당 부분을 고치고 여러 반례도 만들어 보며 내 풀이가 완벽하다고 자신했다.

그렇게 제출을 한 뒤 퍼센트가 올라가는 것을 구경했다.

 

나는 솔직히 30%가 넘었을 때 맞았다고 생각을 해서 빨리 100%찍고 디스코드 켜서 자랑해야지~

라고 생각하고 있었다.

하지만 46%였나? 뜨거운 정답을 받았다.

나는 이때 작년의 악몽이 떠올랐다.

 

작년에도 마찬가지로 대회 종료시간이 얼마 남지 않았을 때 다이아 문제를 말도안되는 실수로 풀지 못했다.

그래서 나는 결국 대회에서 이런걸 못 푸는 사람이구나... 자책하면서 세수를 했다.

 

그러고 다시 자리로 돌아왔다.

 

H. 역삼역 AC (4:57)

55분에 자리에 돌아온 후, 내가 냈던 코드를 보면서 뭐가 잘못이었을까 하고 있었다.

그러다 갑자기 머리에 스치듯이 설마 답이 오버플로우 됐나? 란 생각이 들었다.

 

이걸 고쳐서 낼 때까지 설마 답이 그렇게 많겠어? 라고 생각했다.

왜냐면 아무리 그래도 유니크한 팰린드롬 문자열인데 그게 21억을 넘을 줄은 몰랐다.

 

아까 틀렸던 46%를 넘었을 때, 나는 너무 아드레날린이 넘쳐서 문에 설치되어있던 철봉으로

풀업을 했다. 부끄럽지만 평소에도 이럼

 

풀업을 하고 오니 정말 귀여운 맞았습니다!!가 나를 반겨줬다.

이 솔브는 나에게 굉장히 의미가 크다.

나는 대회에서 다이아를 절대 풀 수 없고, 시간이 얼마 남지 않았을 때도 문제를 풀지 못하는 줄 알았다.

이번 대회에서 두 징크스를 모두 깰 수 있었다.

 

 

스코어보드 공개

사실 우리팀이 2-3등을 하지 않을까 했었다 ㅋㅋ

그도 그럴게 다이아(라고 생각한) 문제도 풀고 프리즈동안 2문제를 풀었으니 은상일거라 생각했는데,

풀이 세션을 보자마자 절망했다. A, E번이 둘다 골드였던 것이다.

 

근데 스코어보드는 꿀잼이었다. ㅋㅋㅋㅋㅋ

상위 5팀이 모두 프리즈 이후 최소 2솔씩 해내면서 구경하기엔 재밌는 스코어보드가 나왔다.

하지만 우리팀은 4등이라서 조금 슬펐음 ㅠ

마치며

사실 저번에 3등을 해서 이번엔 더 잘 할 수 있지 않을까 했었는데 아무래도 운이었던 것 같다.

그래도 서로 나쁘지 않은 퍼포를 뽑아냈었지만 이정도 차이 나는거면 확실한 실력차가 있는 것 같다.

이번에 군대를 가려고 회사를 그만뒀는데 군대에서 더 열심히 해봐야겠다고 생각했다.

 

이번 대회 문제 난이도도 거의 좌셋이고 스코어보드도 예쁜걸 보니 대회는 정말 좋았던 것 같다.

갈려나갔을 운영진 출제진 검수진분들 감사합니다.

 

같이 참여한 참가자분들 모두 고생 많으셨습니다. 다음엔 서로 더 좋은 퍼포로 만납시다.

 

TMI

1. 이 글은 dong_gas님 블로그에서 영향을 받아 썼기 때문에 포맷을 완전히 베껴왔습니다.

 

2. H를 풀고 내가 라스트솔븐가 했는데 djs100201, pjh6792(rebro), lem0nad3로 이루어진 "우승하러 왔습니다"팀이 4:59:51 제출로 1등을 달성했다는 것을 듣고 많이 부러웠다. 사실 누구나 꿈꿔보는 상황인거같은데 ㅋㅋ

 

3. 맨처음 방송은 1일 1골드 때문에 시작했는데 생각보다 재밌어서 계속 하고있다.

 

4. 12월에 군대갈거같아서... 혹시 밥 한번 드실 분들은 연락 남겨주세요 

 

5. 다른 팀들이 너무 강하다 나도 올해엔 퍼플간다.

 

6. 다른 팀들 후기도 궁금하다. 써 줘!