CF.1120,藏在编号里的热爱与成长,是算法人共有的青春坐标
CF.1120,是藏在编号里的专属记忆,承载着算法人共有的青春热爱与成长轨迹,它是无数算法学习者在Codeforces平台上刷题、备赛、突破自我的坐标见证,记录着熬夜debug的焦灼、AC时的狂喜、从卡题困顿到思路通透的蜕变,这串编号早已超越数字本身,成为算法圈同好们心照不宣的青春暗号,串联起一群人向着技术目标笃定前行的滚烫时光,印刻着算法人独有的热血与坚持。
对于每一个泡在Codeforces(圈内人常简称CF)平台上的算法竞赛爱好者来说,“CF.1120”从来不是一串冰冷的字符组合——它是刻在很多人竞赛记忆里的特殊印记,是从新手村摸爬滚打时撞过的南墙,是熬到凌晨三点换来的AC弹窗,是一群同好隔着屏幕为一道题争得面红耳赤的热忱,更是无数人从“只会写Hello World”到能独立拆解复杂问题的成长坐标。
第一次和CF.1120打上交道,是我大一下学期刚进学校ACM集训队的时候,那时候我刚啃完C++的基础语法,连动态规划的状态转移方程都写不利索,被学长按着脑袋刷CF的Round题目,刚巧就撞上了编号1120的场次,记得那天是国内的凌晨一点,我抱着半凉的咖啡坐在宿舍书桌前,电脑屏幕亮着冷白色的光,A题是道看起来简单的字符串处理题,我攥着鼠标改了三版代码,提交上去全是Wrong Answer,眼看着比赛时间过了一半,旁边宿舍一起参训的室友发过来一个敲头的表情包:“你是不是又没考虑空串的边界情况?”那瞬间我醍醐灌顶,改完代码提交看到绿色的“Accepted”跳出来的时候,我差点激动得拍桌子吵醒已经睡熟的舍友,那场比赛我最后只做出了两道题,rating涨了可怜的47分,离当时大家戏称的“蓝名大佬”门槛还差着一大截,但CF.1120这串数字,就那样牢牢印在了我最初的竞赛记忆里。

后来我才知道,不止我一个人对这串编号有特殊情结,集训队的老学长说,他当年打CF.1120那场的时候,正在准备大三的区域赛,卡在C题的构造思路上卡了整整四十分钟,最后在比赛剩五分钟的时候突然想通了贪心策略,提交完代码一秒钟出AC,直接让他冲进了黄名,那场的解题思路他至今还能背出来;同届的姑娘说,她就是在CF.1120的赛后讲题群里认识了现在的男朋友,两个人当时为了D题的时间复杂度优化吵了整整三百条聊天记录,吵完发现两个人在同一个城市读大学,一来二去就凑到了一起,现在连约会都经常找个自习室一起刷算法题;甚至我工作之后带的实习生,听说我大学打过算法竞赛,第一句话就是“姐你打过CF1120那场吗?我高中第一次打CF就是那场,当时紧张到手抖,连输入输出都写错了,现在想起来还觉得好笑”。
其实CF平台上至今已经办了上千场Round,编号排到了几千之后,比1120场难度高的、奖金丰厚的、有传奇选手打出封神表现的场次数不胜数,可CF.1120偏偏成了很多人心里的“白月光场次”——说穿了,哪里是这串编号本身有什么魔力啊,是它刚好卡在很多人最青涩的入门阶段:那时候我们还没被区域赛的奖牌压力压得喘不过气,没被工作里的KPI磨掉对代码的热爱,打CF纯粹是因为喜欢解题时那种抽丝剥茧的快感,会为了一个AC高兴半天,会为了一个WA掉的代码熬到深夜,会在讨论区和天南海北的同好争得热火朝天,那种不带任何功利心的热爱,才是这串编号背后最珍贵的东西。
去年我回学校参加集训队的周年聚会,一屋子新老队员坐在一起吃饭,不知道谁先提了一句“你们记不记得CF1120那场的A题,坑了多少新手”,瞬间整个桌子都炸开了:有人说自己当时交了七次才过,有人说自己那场之后专门整理了三页边界情况的笔记,有人掏出手机翻出了四五年前自己发的吐槽CF1120的朋友圈,字里行间都是少年人的莽撞和鲜活,那天我们喝了不少冰可乐,碰杯的时候叮当的声响里,我好像又看到了很多年前那个凌晨,坐在书桌前盯着屏幕眼睛发亮的自己,屏幕上跳着绿色的AC提示,窗外的天慢慢泛起鱼肚白,那时候我还不知道未来会去哪个城市、做什么工作,但我清楚地记得那一刻的开心——那种靠自己的思考解决了问题的、纯粹的开心。
现在我已经很少有时间蹲凌晨的CF场次了,工作里写的代码大多是和业务逻辑相关的功能模块,很少再会为了一个算法逻辑熬到深夜,但我的收藏夹里永远存着CF.1120的比赛页面,笔记本里还夹着当时写满了演算过程的草稿纸,CF.1120从来不是什么了不起的传奇场次,它只是一个普通的算法比赛编号,可它藏着我们这一群人最滚烫的青春:是对技术最纯粹的好奇,是和同好并肩前行的热络,是哪怕撞得头破血流也不肯放弃的执拗,是我们从懵懂新手慢慢往前走的时候,留在身后的一个清晰的脚印。
只要看到这串编号,我们就会想起那些为了热爱全力以赴的夜晚,想起那个对着代码眼睛发亮的自己——这就够了。