CF20190721是一段藏着夏日记忆的代码,那年夏天,蝉鸣裹着热浪漫过窗台,我蹲在出租屋的旧电脑前敲下这段代码,屏幕冷光映着汗湿的发梢,如今再看,每一行字符都带着当时的温度——混着冰汽水的甜、蚊虫叮咬的痒,还有对未知结果的忐忑,这段代码早失去了实用价值,却成了时光胶囊,一打开就把那年夏天的风,吹到眼前。
2019年7月21日的那个夏日,蝉鸣把空气拉得又长又黏,我坐在出租屋的旧电脑前,屏幕上闪烁的Codeforces比赛界面,成了那个夏天最清晰的注脚,CF20190721,这串由字母和数字组成的编号,原本只是一场普通算法比赛的标识,如今却成了我青春里一个带着温度的标签。
那天的北京,气温突破了35摄氏度,出租屋的空调嗡嗡作响,却吹不散房间里的闷热,我提前半小时就打开了电脑,登录Codeforces账号,反复检查着网络连接和代码编辑器的设置,作为一名准备算法竞赛的大三学生,CF的周赛早已是家常便饭,但不知为何,那天看着倒计时数字一秒秒跳动,我的手心竟渗出了细汗。
比赛开始的铃声(其实是屏幕上“Start”按钮的亮起)响起,我迅速扫过第一题,是一道经典的贪心算法题,思路在脑海里一闪而过,我手指在键盘上快速敲击,代码一行行落在编辑器里,编译、运行,样例输入一次通过,我几乎没有犹豫就点击了提交,看着页面显示“Accepted”的绿色字样,我松了口气,抬头看向窗外,阳光正透过窗帘的缝隙,在书桌投下一道斑驳的光带。
第二题是动态规划,难度比第一题陡增,我咬着笔杆,在草稿纸上画了满满一页的状态转移方程,却总觉得哪里不对,时间一分一秒过去,屏幕上的倒计时数字不断减少,身边的空调似乎也累了,出风变得断断续续,我甚至能听到自己心跳的声音,和蝉鸣交织在一起,成了一种令人焦躁的节奏,中途我几次想放弃,却又不甘心——CF20190721,这个编号像是在提醒我,每一场比赛都是一次不可复制的挑战。
就在比赛进行到一半时,电脑突然卡顿了一下,我心里一紧,生怕是网络出了问题,刷新页面后,比赛界面重新加载,我看着自己只写了一半的代码,突然想起前一天晚上和队友在食堂的讨论。“遇到卡壳的时候,不妨把问题拆成小部分试试。”队友的话在耳边响起,我深吸一口气,关掉了原本杂乱的思路,重新在草稿纸上梳理状态定义,一点点推导转移条件。
当我终于完成第二题的代码,提交后再次看到“Accepted”时,距离比赛结束只剩下不到二十分钟,我没有时间庆祝,立刻转向第三题,那是一道涉及图论的综合题,我刚理清思路,开始构建邻接表,比赛就结束的提示音突然响起,我看着只写了框架的代码,心里既有遗憾,又有一丝莫名的平静。
后来我查了排名,那次比赛我只排在了中游,但CF20190721这个编号,却被我特意记在了笔记本的最后一页,不是因为成绩,而是因为那个夏日里,我为了一个目标全神贯注的模样——汗水滴在书桌边缘,草稿纸堆得像小山,空调的嗡鸣和窗外的蝉鸣,还有代码运行通过时,那一瞬间的欣喜。
几年过去,我早已结束了算法竞赛,进入职场,每天和各种业务代码打交道,但偶尔翻到笔记本上的“CF20190721”,还是会想起那个闷热的夏日,那串编号不再只是一场比赛的标识,它更像一个符号,代表着曾经为了热爱而纯粹努力的时光——没有复杂的人际,没有琐碎的纷扰,只有一个人、一台电脑,和一段想要攻克难题的倔强。
原来有些数字和字母的组合,之所以会被记住,是因为它们背后藏着一段滚烫的岁月,CF20190721,就是我青春里,那个关于代码和夏日的秘密。

