柳暗花明又一村

· · 休闲·娱乐

这里是塔与少女的番外篇外传,假如当初的世界线再次发生改变,世界还会有什么不同吗?

大家多多关注@dream_Exhibiton呀

第一章:名单

方铨铎记得那天所有的细节。

三月三十一日,上午九点十七分。数学课。老师在讲导数的应用,粉笔在黑板上吱吱嘎嘎地响。窗外的阳光透过玻璃照进来,在课桌上投下一片光斑,正好落在他的笔袋上。同桌李浩在打瞌睡,脑袋一点一点的,像一只正在被缓慢充电的兔子。方铨铎正在抄笔记,笔尖划过纸面的声音细碎而均匀,和讲台上粉笔敲击黑板的声音交错在一起,像是同一首曲子的不同声部。

手机在口袋里震了一下。他没有理会。又震了一下。连续震了五六下。

他的心猛地揪紧——这是洛谷群的消息提示,而且是很重要的消息,才会有人连续@他。他握笔的手停住了,笔尖在纸上洇出一个小小的墨点。

“老师,我出去一下。”他举起手。数学老师看了他一眼,点了点头。方铨铎是班上的特殊学生——竞赛生的身份让他享有一定的特权,比如在上课的时候突然冲出去看手机。

他推开凳子站起来,快步走出教室,靠在走廊的墙上,掏出手机。洛谷群的消息已经刷屏了:“CCF官网出公告了!”“北京的成绩出来了!”“浙江的也出了!”

他的手指在颤抖。他点开CCF官网,页面加载的每一秒都像一个世纪。走廊里很安静,只有远处某个教室传来的读书声,模模糊糊的,像是从很远的山坡上飘下来。阳光从走廊尽头的窗户照进来,在地上拖出一道长长的菱形光块。他用手遮了一下屏幕上的反光,终于,页面刷新了。

《CCF NOI 2025各省省队入选名单公示》。

他深吸一口气,点开“北京”那一栏。名单从上到下排列,一共十六个人。

第一名:陈智清,中国人民大学附属中学。总分:600分。方铨铎盯着那个名字,愣了两秒。陈智清,竞赛队的第一人,那个永远坐在机房角落、戴着耳机、面无表情的人。满分。600分。他摇了摇头,继续往下看。

第二名:赵一鸣,北京十一学校。573分。第三名:周远,北大附中。559分。第四名:陈逸飞,北京十一学校。541分。第五名,第六名,第七名……他的目光一行一行地往下扫。每一行都是一个熟悉的名字,每一个名字都是他曾经在训练赛中交过手的人。他认识他们,甚至赢过他们中的一些人——至少在某个时间点,在某个特定的题目上。

第十一名,第十二名,第十三名。他的心跳越来越快,手指下滑的速度越来越慢。没有他的名字。第十四名,第十五名,第十六名。还是没有。

他眨了眨眼,把名单从头到尾重新看了一遍。十六个名字,每一个他都认识,每一个他都曾经在某个周末的模拟赛里遇到过。但没有一个是他自己。他把页面往下拉,在名单的最下面,看到了一行小字:“第十七名:方铨铎,中国人民大学附属中学,总分487.3分。”然后他看向第十六名——488.1分。0.8分。

0.8分。一道选择题的分值。一个边界条件的疏忽。一秒钟的分神。

他想起了省选第一天。那天上午的题目是数据结构,线段树合并。他做过很多次,闭着眼睛都能写出来。他本来应该在一个小时内完成,然后从容地做后面的题。但他做题的时候习惯性地看了一眼手机——不是想偷懒,只是习惯了,每隔一段时间扫一下有没有重要的消息。然后他看到了喵爱的消息:“明天的T3,如果考到字符串,你会用哪种自动机?”他回了一句:“AC自动机够用了。后缀自动机太吃细节,省选不会考那么难。”

他放下手机,继续写代码。但那一眼已经打乱了他的节奏,像一条高速运行的流水线忽然被插入了一个额外的时钟周期。他花了将近两个小时才把那道题写完,比平时慢了将近五十分钟。多出来的五十分钟,他本来可以用来检查、用来优化、用来把那0.8分补上。但他没有。他以为那道题不会有问题,他以为自己的速度足够快。

他错了。

他把名单看了第四遍。第十七名。就差一个人。就差0.8分。他的脑子里开始飞速运转,计算着每一个可能的失误——那道数据结构的题,他是不是在某一个边界条件上多花了时间?那道图论的题,他有没有在某个细节上浪费了不必要的精力?那道字符串的题——后缀自动机——他做得对吗?他觉得自己做对了。但0.8分告诉他,他做得不够快。

他靠在墙上,闭上眼睛。墙壁是凉的,透过校服的布料渗进来,冰着他后背的皮肤。走廊里还是很安静,阳光还在照进来。世界没有因为他差了0.8分而停止转动。楼下的操场上有人在跑步,有人在打篮球,有人在笑着聊天。一切如常。没有人知道,在这个上午,他的世界被0.8分砸开了一条裂缝。

他没有回教室。他顺着走廊走到尽头,推开楼梯间的门,在台阶上坐了下来。楼梯间很暗,只有安全出口的绿灯发出惨淡的光,把墙上的消防栓轮廓照出一层淡绿色的边缘。他把手机放在膝盖上,屏幕还亮着,上面是那张名单。第十七名:方铨铎,487.3分。他看着那行字看了很久,像是要把每一个数字都刻进眼睛里。0.8分。差了0.8分。他见过这个数字——去年喵爱也是差了零点三分,也是这样的名次,也是这样的感受。他当时觉得“太可惜了,就差那么一点”。现在轮到他自己了。

手机震了一下。他低头看了一眼,是喵爱的消息:“你看到了吗?”他没有回复。又震了一下:“我进了。第十六名。”他看着那行字,心里涌起一种奇怪的感觉——他为她高兴,他真的为她高兴。她等了一年,从0.3分翻到了第十六名,她做到了。但他自己坐在黑暗的楼梯间里,一个字都打不出来。她还在发:“你呢?”“方铨铎?”“你还好吗?”

他打了几个字,删掉。又打了几个字,又删掉。他不知道该说什么。说“我没进”?说“我差了0.8分”?说“我完了”?他深吸一口气,打了两个字:“没进。”然后他关掉手机屏幕,把手机放在旁边的台阶上,把脸埋进膝盖里。

楼梯间里很安静,安静得能听到自己的呼吸声。急促的,不均匀的,像是正在被什么重物压着。他想起了省选第二天的第三题。后缀自动机。他最不擅长的知识点。那道题他做了一个多小时,写了几百行代码,通过了大样例。他以为自己做到了,他以为那道题他拿了满分。但现在他知道了,拿了满分也不够。第一天的失误已经把他拉出了名单,那0.8分像一个永远不会闭合的缺口,无论他怎么填补,都不会再回到原来的位置了。

他不知道自己在那里坐了多久。也许是十分钟,也许是一个小时。当他终于站起来的时候,腿已经麻了。他扶着墙站起来,膝盖发软,他差点又坐回去。他推开楼梯间的门,重新走进走廊,阳光刺得他眯了一下眼睛。一切如常。太阳照常升起,课间有人在打闹,有人在说话,有人在喝水。没有人注意到他。

他没有回教室,直接走出了校门。保安看了他一眼,没有拦他——竞赛生的身份让他可以随时进出校门,随时可能去机房、去比赛、去培训。他沿着街道走,不知道该去哪里。不想回宿舍,不想回家,不想去机房——那个他待了三年、比教室还熟悉的地方。他穿过海淀黄庄、中关村、北大南门,一直走到了未名湖边。

他在湖边的长椅上坐下来,看着面前那片灰蓝色的水面。湖面上有人在划船,船桨拨开水面的声音很远,很轻。春天的柳条刚刚抽芽,嫩绿色的,在风里轻轻摆动,像是正在用自己的方式输出一行行初版数据,然后在枝条的末端拆解成更细的叶脉。他想,如果那0.8分没有丢,他现在应该在机房,和陈智清一起准备NOI。他会刷题到深夜,会在间隙打开手机看一眼喵爱有没有发消息。然后他会参加NOI,拿一块金牌,去国家队,走他以为会走的路。但现在那些都不会发生了。他坐在这张长椅上,面前是未名湖,头顶是灰白色的春天天空。一切都还在,只有他已经不在原来的地方了。

他把手机从口袋里掏出来,翻到喵爱的对话框。最后一条消息是她的:“方铨铎,你回我消息,我很担心你。”他盯着那行字看了很久,然后把手机屏幕关上。湖面上起了一阵风,吹皱了他的倒影。他把手机放回口袋,继续看着那片湖面。

太阳正在从西边落下,把湖面染成一片暖橘色。天色渐渐暗下来,路灯依次亮起,像一串被按顺序赋值的变量,每一盏都在自己的时间点被激活。他站起来,走回学校,路灯在他的身后拖出一道细长的影子,像是有人正在沿着他走过的轨迹重新绘制一条等距的路径。

他不知道明天会怎样,但至少今天,他走完了从教室到长椅再到路灯的全部路程。

回到宿舍的时候已经快九点了。室友还没回来,房间里只有他一个人。他把外套脱下来挂在椅背上,在书桌前坐了一会儿,盯着墙壁上那张课程表,纸已经有些旧了,边角卷起,像是被翻过太多次。他拿起手机,看到喵爱又发了几条消息——“方铨铎,你还好吗?”“我真的很担心你。”“你回我一下好不好?”——最新一条是十五分钟前发的:“我在你宿舍楼下。”

他的心跳猛地漏了一拍。他站起来走到窗边,拉开窗帘,看到路灯下站着一个裹着灰色外套的人影,背对着他的窗口,手机握在手里,她低着头看着屏幕,肩膀微微缩着,像是有点冷,但没有要走的意思。

方铨铎拿起手机,给她发了一条消息:“你抬头。”

喵爱愣了一下,然后缓缓抬起头来。隔着三楼的窗户,隔着路灯橘黄色的光,她看到了他。他没有笑,她也没有笑。但他把窗户推开了一条缝,冷风从缝隙里灌进来,他开口说了一句话,声音不大,他知道她听不见。但他看到她的嘴角弯了一下,他知道她大概猜到了他在说什么。

他下了楼,走到她面前。路灯的光把两个人的影子拉得很短,缩在脚底下,几乎要重叠在一起。她先开口了:“我打电话问了你们学校的教练,他说你没回宿舍,我想你可能在这里。”他看着她,她的嘴唇被夜风吹得有些发白,手指也冻得微微发红。他没有问她是怎么赶过来的,也没有问她是什么时候到北京的。他只是说:“外面冷,上去吧。”她没有推辞,跟着他上了楼。

那天晚上,她坐在他宿舍的书桌前,他坐在床上,两个人隔着一张桌子的距离。她问了他很多问题,大部分他都没有认真回答,但那些问题本身像是一种正在被持续重传的数据流,让他知道自己还在被接收。

后来她在椅子上靠着椅背睡着了,肩膀微微倾斜,像是在试图用一种更省力的方式维持当前的睡眠状态。他轻手轻脚地站起来,给她披上自己的外套,然后回到床上躺着,盯着天花板。窗外的路灯透进来一条细长的光带。他看了很久,终于闭上了眼睛。

第二天早上他醒来的时候,她已经走了。桌上有张纸条,字迹和她的声音一样清晰:“我回杭州了。你好好吃饭。”他盯着那四个字,把纸条折好放进了抽屉里,然后拉开窗帘,看到窗外阳光正好。他不知道自己什么时候才会好起来,但至少他知道有人正在以固定的频率,向他的端口发送着保持连接的确认包。

第二章:静止

喵爱走后的第一天,方铨铎醒得很晚。阳光从窗帘缝隙里钻进来,在天花板上铺开一条细长的光带,像是被拉长了、却依然稳定的时序信号。他侧过头看了一眼书桌,那张纸条已经被她拿走了,桌面干干净净的,只剩下摊开的课本和一支笔。他躺了一会儿才坐起来,穿上外套,洗漱,下楼吃早饭。一切动作都按部就班,像在执行一段已经被调试完的初始化代码,每一个步骤都正确,但没有哪一步是发自内心想做的。

回宿舍的时候他路过机房门口。门关着,里面没有人。他站在门口透过玻璃看到自己常坐的那个位置,显示器关了,键盘被推到了桌角。那台机器和他之间隔着一扇锁着的门、一个已经不能运行的会话,和一整段还没有被归档的时间记录。他没有推门进去,站在那里看了一会儿,然后转身走了。

他回到宿舍,在书桌前坐下来,打开电脑。屏幕亮起来的时候,桌面上还留着他省选前一天最后写的那段代码,光标在最后一行末尾闪烁,像在等待一个不会再被触发的输入事件。他没有打开那个文件,也没有删掉它。他只是看着光标跳动了很长一段时间,然后关闭了那个窗口。

接下来的几天,他进入了一种很安静的状态。每天按时起床,按时吃饭,按时睡觉。机械得像一段已经被编译成机器码的程序,没有任何多余的输出、没有异常的跳转、没有额外的数据交换。他不开电脑,不刷洛谷,不读消息。但他也没有躺着不动。他整理了一遍书架,把那些竞赛教材按年份排好,从高一到高三,一本不少。他把它们擦干净,放回原位,然后盯着那些书脊看了很久。那些书没有变,它们还是他无数次翻阅过的样子,在每一个页码的边缘留着他的折痕和笔迹,像一个已经被完整保存的版本快照。

手机被放在抽屉里,调成静音。只在每天晚上拿出来看一次喵爱有没有发消息。她每天都会发,内容都很短——有时候是一张她在训练时拍的键盘照片,有时候是一句“杭州今天下雨了”,有时候只是一个句号。那些消息不需要回应,它们只是从她的窗口发送过来,像一颗颗微小的确认包,告诉他连接仍然存在。他没有每次都回,但他知道她在那里。这本身就像一种持续的轮询,不需要应答,也能确认她的端口还在监听。

第五天的晚上,他从抽屉里拿出手机,看到喵爱发来了一条消息:“我今天做了一道题,后缀自动机的。是你省选第二天做的那道。我做完之后跑通了。我在想,如果是你,你会不会用更短的写法。”方铨铎看着那行字,窗外的路灯亮着,把路面上的一小片积水照成暖橘色。

他打字:“AC自动机不行。”

消息发出去之后,他忽然觉得自己的手在微微发抖。这是他退役以来第一次回应一道竞赛题的内容。那道题曾经是他最不擅长的知识点,曾经在省选考场上让他紧张,曾经他以为它的存在只是帮他填补一个知识点缺口。他不知道他现在为什么回这条消息,也许是因为那道题的底层结构正在以一个被重新编译的方式出现在他的内存中,而编译器决定接受它的全部依赖。

喵爱秒回:“你终于回我了。”

他没有回应那句,他又打了一行字:“下次如果还考字符串,我会先看题再说话。”

喵爱回了一串省略号,然后说:“方铨铎,你还是那个方铨铎。”

他握着手机,把她的消息又读了一遍。他还是那个方铨铎,他不知道这是好是坏,但至少他确认自己的身份标识没有被系统回收。他放下手机,在黑暗中躺了一会儿,然后重新打开手机,打了几个字:“那你也是那个喵爱。”

那边没有回复。但第二天早上他醒来的时候,看到她在凌晨一点多发来的一张照片——窗外的杭州夜景,灯光像一张被过度曝光的截图,在夜色中亮成一整片暖黄色的噪点。她附了一行字:“你说对了,我还是那个喵爱。”

第三章:陈智清的沉默

那段日子里的另一个插曲,来自一个他几乎没有预料到会联系他的人。

那是一个周四的晚上。方铨铎正在书桌前整理旧笔记,手机屏幕亮了一下。他拿起来,看到一个不太熟悉的头像——灰色的,没有多余的信息。发件人是陈智清。消息内容只有一行字:“你最近在看什么书?”

方铨铎愣了一下。他和陈智清不熟——同校竞赛队三年,说过的话加起来大概不超过二十句。每次在机房里碰面,陈智清要么戴着耳机敲代码,要么一个人坐在角落里翻一本很厚的英文书。他很少主动找人说话,更不会用这种近乎试探的方式开启对话。

方铨铎盯着那行字看了很久,像是在检查一段已经编译完成的代码,确认它没有隐藏的语法错误。他回复:“没看书。在玩游戏。”

“什么游戏?”

“杀戮尖塔II。”

“好玩吗?”

“还行。一直在输。”

陈智清那边没有立刻回复。方铨铎以为对话就这样结束了,但过了一会儿,他的手机又震了:“那道后缀自动机的题,你的解法我看过。比我写的短。”

方铨铎愣住了。那道题是他省选第二天的第三题,他只提交过一次,在考场上写完之后就没有再改过。他不知道陈智清是什么时候看到它的,也不记得自己有没有把那份代码发到过任何公开的平台上。但他不需要问,因为陈智清的话已经替他完成了全部的验证。那些省选时他以为自己已经永远失去的代码段,正在被另一个人以只读模式打开。

他想了很久,没有回那一条。但第二天他打开洛谷的时候,看到陈智清更新了一道题的题解——那道题是最基础的线段树模板,入门题,对陈智清来说像写“Hello World”一样简单。他在题解的末尾加了一行字:“这道题我记得有人比我写得更好。”

方铨铎把页面往下拉,在评论区里看到了几十条“膜拜”和“大佬”。没有一条提到他的名字。但他知道那行字是在对谁说。他收藏了那篇题解,然后关闭了页面。

那天晚上他发了一条消息给陈智清,只有两个字:“谢谢。”陈智清没有回复。但第二天凌晨,方铨铎的手机亮了一下——陈智清在洛谷上关注了他。那个关注列表里原本只有三个人,此刻多了一个名字,像一行被慎重插入的导入语句,以正确的顺序出现在所有已有引用的末尾。

方铨铎看着那个新增的关注提示,把手机放在桌上,没有回关。他知道陈智清不需要那个确认。那些不需要被标注的连接,往往会比任何显式引用的关系都运行得更久、更稳定。

第四章:返校

第十二天的早上,方铨铎回学校了。

他推开教室门的时候,所有人的目光都短暂地扫过他。他看到了一些熟悉的脸——同桌李浩、前桌的女生、后面那个总在上课睡觉的男生。没有人问他“你还好吗”,也没有人用那种带着同情的小心语气跟他说话。他们只是看了他一眼,确认他回来了,然后继续做自己的事。那种简短的动作反而让他觉得轻松,像一段不需要输出调试日志的操作,在没有任何额外开销的情况下完成了它的执行。

他在自己的座位上坐下来,翻开课本。数学老师正在讲数列的求和,粉笔在黑板上写出了一长串推导。他抄着笔记,一行一行地写,速度很慢,像很久没有写过这么多中文字了。但每一笔都清晰地落在纸上,像是刚被重新校准过的输出设备。

中午李浩叫上他去食堂吃饭。两个人并排走着,中间隔着一小段距离,和以前一样。李浩一边走一边说班里的事——谁在月考里考了第一,谁换了个同桌,谁又迟到了。方铨铎听着,偶尔应一声,偶尔夹一口菜。那些琐碎的日常像一段已经被编译完成的旧版本代码,他知道自己还需要时间才能重新接入它的所有分支和子模块,但至少主循环已经恢复了正常运行。

下午放学的时候,他路过机房门口。门开着,里面坐了几个人,键盘声此起彼伏。他站在门口看了一会儿,看到自己常坐的那个位置空着,桌面上已经落了一层薄薄的灰。陈智清坐在角落里,和以前一样戴着耳机,盯着屏幕,像一颗已经在他自己的轨道上运行了很久的信号节点,在没有任何外部中断的情况下持续输出着正确的数据。

陈智清没有抬头看他,但方铨铎注意到他敲键盘的速度慢了一拍。那是一个极其细微的变化,像是某个进程在后台悄悄调整了自己的优先级。方铨铎没有走进去,但他站在那里多停留了大约三秒钟。那三秒钟被他的操作系统记录在了日志里,没有触发任何警报。

他转身走开。

那天晚上他给喵爱发消息:“我今天回学校了。”喵爱回复得很快:“感觉怎么样?”“没什么感觉。就是抄了一整天的笔记。”“能抄笔记就是好事。说明你还在。”他看着那行字,把它存进了一个不会被自动删除的文件夹里。

第五章:喵爱的第二次到来

喵爱是四月下旬的周末来的。

她提前一天告诉他:“我明天来北京。”他没问“为什么”,只回了一个“好”。第二天她在北京南站出站口站着,穿着一件浅灰色的外套,背着那个旧旅行包,像一段已经被正确解压的数据包,所有字段都在预期的位置上。

方铨铎走过去。她看着他,开口说了一句:“你又瘦了。”他回答:“没有。”她没有跟他争论,只是从口袋里掏出一袋橘子,递给他:“路上买的。”他接过来,橘子还是温热的,隔着纸袋传到他的掌心,像一段刚刚从存储设备中读取出来的、还有余温的数据块。

他没有说什么谢谢,只是接过那袋橘子,然后转身带她出站。她们去了学校附近的一家面馆,点了两碗面。她问他最近在做什么,他说在看书、抄笔记、偶尔散步。她点点头,没有评价那些话的重量,也没有问“你好点了吗”。她只是坐在他对面,把他碗里的葱花挑出来放到自己碗里,然后低头吃面。筷子碰撞碗沿的声音在傍晚的光线里响起又落下,像是在执行一段不需要返回值的简单函数。

吃完面她们沿着学校门口那条路走了很久。暮色正在变暗,天空从灰蓝过渡到深灰,路灯依次亮起。走到一棵槐树下面的时候,她停下来,转身看着他。

“方铨铎,”她说,“你以后打算怎么办?”

他想了很久,脚下的路面正在被路灯镀上一层暖黄色的光泽:“不知道。但应该不会再回竞赛了。”

“那你想做什么?”

“先把文化课补起来。然后考大学。”

“考什么大学?”

“没想好。但应该在北京。”

她沉默了一会儿,然后说了一句:“那我回北京集训的时候,你还在吗?”

他看着她的眼睛,路灯的光落在她的瞳孔里,像一小片正在被缓慢渲染的图像:“在。”

她看着他,像是正在把那个返回值写入自己的内存:“那说好了。”

路灯的光芒正在均匀地铺满她们之间的地面,在那片被完全覆盖的区域里,所有正在传输的数据包都被正确地路由到了各自的目的端口。

第六章:杀戮尖塔

回到学校的第二周,方铨铎开始做一件事。他在Steam上买了一个游戏,叫《杀戮尖塔II》,一款卡牌构筑类Roguelike游戏。选择它不是因为任何特殊的原因,只是在他浏览商店页面的时候,它的角色描述恰好出现在屏幕中央。铁甲战士穿着一身厚重的盔甲站在塔底,目光朝向画面之外,像在确认自己是否需要重新加载整个关卡。

他买了它,下载,安装。点击“开始游戏”,选择了铁甲战士。界面上跳出一行字:“他曾登上塔顶,但他不记得看到了什么。”方铨铎看着那行字,觉得自己像是在看一个很久以前的存档,文件名已经模糊不清了。

第一局,他打到了第二层。被一个精英怪拍死了。第二局,他走到了第三层,但牌组构筑得太贪,过牌不够,被Boss活活耗死。第三局他走得更远,但在塔顶之前倒下了。他没有觉得沮丧。那些失败不会以任何形式影响他的成绩单、不会留下任何会被永久存储的记录。每一局结束后,屏幕上都会出现一个“重新开始”的选项,不需要等待,不需要审批,只需要一次点击。

他发现自己开始习惯那种循环。输、重来、再输、再重来。每一次失败都比上一次多走几层,每一次重新开始时,他都知道上一轮的经验已经被完整地保留,只是以不同的方式被重新编译到了新的牌组结构中。像被中断的进程在下次重启时从断点处继续执行,不需要从头加载所有环境变量。

有一天晚上他打到塔顶,击败了最终Boss。屏幕上弹出一段隐藏的剧情文本——铁甲战士站在塔顶,面前是建筑师,那个他一千年前曾经拯救过的人。文本里写道:“建筑师看着他,沉默了很久。然后她说:‘我知道你不是自己来的。那个被你劈成两半的家伙在控制你。’铁甲战士没有回答。他举起了剑,但在落下之前,他停住了。”

方铨铎盯着屏幕,看着那行“他停住了”。然后他按下暂停键,走出房间,去厨房倒了一杯水,再走回来,重新坐下,继续看。铁甲战士最终放下了剑,那个动作被描述得很简短。整个画面在暮光里保持静止,直到那行被激活的提示在屏幕中央缓缓移过。

他关掉游戏。铁甲战士选择了放下。那个动作不需要理由。

那天晚上他给喵爱打电话,说到自己在玩这个游戏。喵爱在电话那头笑了一下:“你?玩游戏?你以前不是觉得玩游戏浪费时间吗?”他想了想:“以前是觉得浪费时间。现在觉得,浪费时间也挺好的。”她沉默了一会儿,然后说:“那你就多浪费一点。”

挂了电话之后他重新打开游戏,但没有继续爬塔,只是停在主菜单界面,看着那个站在塔底的铁甲战士,在背景音里站了很久。他不知道自己什么时候会再开始爬塔,但至少他知道那个“重新开始”按钮一直都在那里。他把它放在后台,让它在低优先级下持续运行,等待自己被唤醒的那一天。

第七章:夏天的边缘

五月的时候,方铨铎开始重新做题。不做竞赛题,做高考题。他把高一到高三的数学课本全部找出来,按顺序摆好,然后从第一本开始翻。那些公式他大部分都还记得,但需要重新想一下才能用起来。他没有赶进度,也没有定每天必须做多少道题的计划。只是翻开一页,看一道题,试着想思路,想不出来就跳过,想出来了就在草稿纸上写一遍。然后翻到下一页,重复这个过程。整个过程缓慢而稳定,像是在一片空旷的地址空间中,一个接一个地重新初始化那些已被标记为可回收的存储块。

有时候喵爱会在晚上给他讲题,隔着电话,声音经过压缩和传输,在他耳边落下来,带着细微的电流噪声。她不会说“加油”,只说“这里可以换一种做法”或者“你试试从结果反推”。他听着,偶尔能想通,偶尔想不通。但想不通的时候她不会追问,只是说一句“那你先放着,明天再想”,像在把那个尚未解决的问题重新挂回待办队列,等待下一次被调度时再次获得时间片。

六月的时候天气热起来了。方铨铎换了短袖,把课本从书桌搬到阳台的小桌上,在那里写作业。风吹过来的时候带着槐花的甜香,草稿纸的边角会被吹得微微翘起,他用笔压住,继续往下写。成绩在缓慢地爬升——从三百多分到四百出头,从四百出头到四百五左右。每次模拟考都比上次多拿一些分,虽然不多,但足够让他确认自己还在向前移动,像一段被限速的下载任务,正在以固定的速率缓慢填满进度条上的剩余空间。

七月的一个傍晚,方铨铎坐在阳台上写英语阅读。手机亮了一下,是喵爱的消息:“我今天进国家队了。”他看着那行字,没有惊讶。他放下笔,抬头看了一眼远处的天空,云层正被落日染成淡橘色:“那下个月可以去IOI了?”“可以。但比赛之前,我想先见你一面。”

方铨铎握着手机:“我一直在北京。”她回:“我知道。所以我来。”

她来的那天是周六,阳光很烈。方铨铎在车站接到她,和上次一样,她背着那个旧包站在出站口,唯一不同的是这次她没有递橘子给他,而是递了一杯奶茶:“芋泥波波,三分糖。你尝尝。”他接过来喝了一口,发现就是她平时给自己点的那种。他喝了一口,然后说:“甜的。”她说:“甜就对了。”

她们没有去任何远的地方。在北京的街道上走了很久,从车站走到学校附近,从学校附近走到那条河边的步道。河水在傍晚的光线里泛着细碎的光点,像一段正在缓慢渲染的动态画面,每一帧都在上一帧的基础上叠加新的颜色值。她们在河边的长椅上坐下来,喵爱侧过头看着他,晚风把她的头发吹起来又放下。

“方铨铎,”她说,“你有没有想过,如果那0.8分没有丢,你现在会在哪里?”

他想了想,他其实已经很多次设想过那个分岔了。如果那0.8分没有丢,他会在省队里,每天和陈智清一起训练,和整个集训队一起备战NOI。他会考得不错,拿到金牌,进国家队,走过他曾经以为会走的那条路。但那样的话他可能就不会退役、不会坐在北京傍晚的河边、不会和他旁边的这个女孩隔着半个肩膀的距离看着同一片天色。

他想了一会儿:“不知道。但我觉得现在这样也不错。”

喵爱看着他,天色正在变暗,路灯亮起来,光落在她的侧脸上。她轻声说:“那就好。”然后她转回头,继续看着远处的水面。

那天晚上他送她去酒店,在门口停下的时候她从外套口袋里掏出一个东西递给他。是一只纸鹤,橙色的,折得很整齐,翅膀对称,尾部平展,像是一段被多次优化过的代码,以最小的存储空间实现了最完整的功能。方铨铎接过来,纸鹤很轻,在他的手心里几乎感觉不到重量。

“这什么?”

“一只纸鹤。”

“我知道是纸鹤。为什么给我?”

她看着他:“你以后如果又觉得过不去了,就把它拆开。里面有一句话。”然后她笑了笑,转身走进了酒店,没有回头,在旋转门即将合拢的那一瞬间从玻璃上朝他挥了一下手。

方铨铎站在路灯下面,手里攥着那只橙色的纸鹤。他没有当场拆开,把它放进了外套内侧的口袋里。橘黄色的光把整条街都覆盖成同一色调,他低头走完那段路,路灯把他的影子拉长又收回。

第八章:高三

九月,方铨铎正式进入高三。教室里的空气变了,黑板的角落写着距离高考的天数,每天都会被更新一次,像一段正在以固定递减速率运行的循环,不需要外部控制信号也能精确地完成每一个迭代。方铨铎坐在自己的位置上,把各科课本按顺序排好,然后在笔记本的第一页写下了自己的各科目标分数。加起来刚好超过去年的一本线。他不知道能不能达到,但他已经把那条线画出来了。

他开始调整自己的作息。每天早上六点半起床,七点到教室。早自习背英语单词和语文古诗文。上午上课,中午在教室里趴二十分钟,下午继续上课。放学后留在教室做一小时的题再走。晚上回家之后再做两小时的作业,然后睡觉。整个作息像被设置成了固定优先级,每一个任务都在它的时间片内完成,不被更高优先级的进程抢占。

他给自己定了一个规矩:每天只弄懂一个知识点。一个就够了。不是“学会”全部内容,是“弄懂”那一小块。弄懂的定义是:能用自己的话把那个知识点讲清楚。他写在笔记本上,每一条都标注日期和来源,像在为自己建立一套更新缓慢但稳定的知识版本库。

有时候他会在课间去走廊站着,看着操场上那排树在风里翻动叶子。他不知道自己在看什么,但那些叶子正以各自的速度完成一整个生长周期。秋天来了,叶子从绿变黄,从黄变棕,从树上落下,落到地上,被风卷起来,又被新的风压下去。他看着它们完成这些变换,觉得那些离散的状态正在以某种方式同步发生。

晚上回到家,他会打开手机看一下喵爱有没有发消息。她的消息通常在凌晨一点左右到达,有时候是一张键盘的照片,有时候是一句“训练结束了”后面加一个句号,有时候只是两个字符的组合。他有时候会回一条“早点睡”,有时候不回,就那么让那些消息在对话框里慢慢往上堆积,像一段持续写入的日志文件,每一行都带时间戳,按顺序排列。

有一天晚上他坐在书桌前翻开数学练习册,那些曾经让他觉得复杂的公式正在逐渐变得清晰。他写完最后一题,合上练习册的时候窗外的夜色已经转成最深的蓝,远处的楼顶有几盏红色的信号灯正在以固定的频率闪烁。他看了几秒,然后关掉台灯,在黑暗里坐了一会儿。

他想起一年前的这个时候,他也在书桌前坐着,面前摊着的是竞赛题。那时候他想的是后缀自动机、网络流、线段树合并。现在他想的是导数、数列、解析几何。两种知识之间没有直接的对应关系,但他发现他在处理这两种问题时用到的思维方式——拆解问题、寻找隐藏条件、逐步推导——其实用的是同一套底层结构,只是输入和输出的格式不同。

他在黑暗里坐了一会儿,然后站起来,去厨房倒了一杯水。窗外的路灯还亮着。他不知道这条路还会走多久,但他知道他已经走完了一部分,剩下的部分正在前方以同样的间距等着他跨过去。

第九章:一模

一模考试在一月中旬。考场在教学楼四层靠里的位置,暖气不太足,方铨铎坐在靠窗的地方,冷风从窗缝里渗进来,吹得他的试卷边角微微翘起。他用笔压住卷角,深吸一口气,开始读题。

语文的古文阅读他读了两遍才大致明白意思。他写答案的时候字迹有些歪,但每一个字都落在它应该在的位置上。作文题目是“选择”,他盯着这两个字看了很久,然后想起很多事——省选的0.8分,退役的那段空白,重新回到教室的那一天。他最后写了一个人走了一段很长的路,中间停下来过,怀疑过,甚至想过折返,但他没有退回去。他写完之后读了一遍,字数不多,但至少没有跑题。

下午是数学。这是他花了最多时间的科目。选择题他做得还算顺利,填空题三道有把握,一道不太确定。大题他一道一道地过,三角函数写完了,数列写了一半,立体几何写了但不确定对不对。导数开了个头,但没有推到最终结果。交卷的时候他估算了一下,大概能拿一百一十分左右。比他预想的少一些,但他没有慌,因为那些他做出来的部分,他确认自己是对的。

第二天是理综和英语。理综的物理大题他只做出来一道半,化学的选择题蒙了大半,生物是他最好的部分,选择题做了四道,填空题填了大半。他交卷的时候觉得自己大概能考一百七十分左右。英语则顺利得多——从竞赛时期积累下来的阅读能力还在,完形填空和阅读理解的准确率很高,作文也写得顺畅。他估了估分,英语大概能拿一百二十五分。

所有科目考完的时候已经是傍晚了。他走出校门,天色正在变暗,路灯亮了,把他面前的整条路照成均匀的暖黄色。手机震了一下,是喵爱的消息:“考完了?”他回复:“考完了。”她问:“感觉怎么样?”他想了一会儿,没有去估算具体的分数或分析某道题的得失:“不知道。但都写完了。”喵爱说:“那就行。等你出分。”

他收起手机,沿着路灯照亮的街道走回去,路面被灯光铺满,每一步都落在相同的亮度区间内。

成绩出来那天他正在上课。手机在口袋里震了好几下,他等到课间才拿出来看。喵爱发了一连串消息,最后一条是:“出分了!你查了没有?”他点开查分系统,页面加载得有些慢,然后数字跳了出来:语文105,数学118,英语126,理综182。总分531。去年的一本线是527。他过了。

他站在走廊里看着窗外的天空,灰白色的云层正在缓慢移动,阳光从云缝里漏下来,在操场上投下一片片移动的光斑。他给喵爱发了一条消息:“531。”她的回复是一串感叹号,然后是一条文字消息:“方铨铎,你知道吗,你半年前考了138分。”他看着那行字,握手机的那只手微微收紧,然后松开,把手机放回口袋里,转身走回教室。

他在自己的座位上坐下来。窗外的天空正在一点点放晴,阳光穿过云层,在教学楼的墙壁上拖出一道斜斜的光影。他翻开课本,翻到老师正在讲的那一页,继续听课,笔尖在纸面上划出细碎而均匀的声音。

第十章:北京见

一模之后,方铨铎去了一趟北京。不是为了考试,也不是为了看学校——他只是想去看看那座他曾经考了138分之后坐在湖边发呆的城市,现在再去看一眼,会不会有什么不一样。他坐了一趟早班的高铁到北京南站,然后换地铁去了北大。在校门口站了一会儿,然后走进去,沿着那条他走过几次的路,走到了未名湖边。

湖面上的冰已经化了,水波在午后的阳光下微微晃动,在每一段波动的表面上折射出不同亮度的光点,像一段以极低延迟渲染的动态画面。他在湖边的长椅上坐下来,看着远处博雅塔的倒影在水面上碎成一片模糊的形状。上一次他坐在这里的时候,刚知道自己差了0.8分。那时候他觉得一切都完了,觉得那些年刷过的题、熬过的夜、写过的代码,都随着那0.8分一起消失了。他以为自己再也没有机会走到任何一条他想走的路的终点。

但现在他又坐在这里了。同一个位置,同一片水面,同一种光线角度。他拿出手机拍了一张照片发给喵爱:“我到北大了。”喵爱回得很快:“好看吗?”“还行。有点冷。”“那你多穿点。”他低头看着那行字,屏幕上她的头像旁边显示着“输入中……”,过了几秒又消失了。他没有追问她想说什么,但他知道她正在用自己的方式查看他当前的状态。

他坐在长椅上,面前是那片他曾经坐着发呆的湖面。风从水面上吹过来,带着初春特有的凉意,穿过树梢和衣摆之间的缝隙。他坐了一会儿,然后站起来,继续往前走。他穿过教学楼,在图书馆门口停了一下,看到玻璃门里透出暖黄色的灯光,有几排学生在低头看书。他没有推门进去,转身原路返回。

离开校园的时候他在校门口又站了一会儿,校名刻在石碑上,阳光照在字迹的边缘,拖出一道淡淡的影子。他拍了一张校门口的照片,发了一条朋友圈,没有配文字,只发了那张照片。过了几分钟看到喵爱点了一个赞,然后又看到陈智清也点了一个赞。

他把手机收起来,走向地铁站。北京春天的风正从街巷之间穿过,吹动他的衣摆和路边的枝条。那些正在被重新写入的数据块,每一段都以低噪声的形式出现在他经过的路线上,以平实的格式记录着当前位置和时间戳。

第十一章:高考

高考的那两天,天气很好。

方铨铎坐在考场里,面前摊着试卷。他没有想太多,只是读题、想思路、写答案。一题一题地往下做,像在完成一段已经被拆分成多个子任务的大型批处理作业。遇到不会的,先跳过,去做后面会的。等把所有能拿的分都拿到手之后,再回头去看那些卡住的题。有些能想通,有些想不通,但节奏始终没有被拉长或压缩。考前他和自己约好:不是来拼命的,是来收尾的。

考完最后一科英语的时候,铃声响了。他放下笔,看了一眼窗外,阳光正透过窗户斜斜地照进来。监考老师正在收卷,他把试卷放在桌角,靠在椅背上,手心里有一点汗,但握笔的力道已经彻底松开了。

走出校门的时候,他看了一眼手机。喵爱发来一条消息:“考完了?”他回:“考完了。”她问:“感觉怎么样?”他想了一会儿,打了一行字:“都写完了。”她说:“那就好。等你来杭州。”他看着那行字,把手机放回口袋里,沿着街道走回去。路面上的热浪在正午的光线下翻涌着,他路过自己曾经坐过的那张长椅时没有停下,继续向前走着。

第十二章:杭州

方铨铎买了七月初的高铁票去杭州。到的时候是傍晚,阳光正从西边斜斜地照下来,把车站的玻璃顶棚染成一片暖金色。喵爱在出站口等他,穿了一件白T恤和牛仔裤,头发扎成马尾,手里没有拿奶茶,只是站在那里。他看到她的那一刻,她冲他笑了一下,很轻。

他走过去。她没有说你瘦了,也没有说别的话,只是侧了一下头示意他跟着她走。两个人并肩走出车站,傍晚的光线把她们的影子拉得很长,落在身后的地面上,随着每一步移动而微微变形。

她们沿着西湖走,走过苏堤,走过六座桥。湖面上有荷花,粉色的花瓣在夕阳下微微发亮。走到第三座桥的时候,喵爱停下来,靠在栏杆上,侧过身看着他。湖面上吹过来一阵风,把她的头发吹得有些乱,她伸手别到耳后,动作很自然。

“方铨铎,”她说,“你以后打算做什么?”他想了想,远处有船正在通过桥洞:“写代码。可能会去做游戏,可能会去做工具。反正是写代码。”她点了点头,像是她已经知道了答案,只是需要听他说一遍:“那我继续搞竞赛。你写你的,我写我的。”她顿了一下:“但我们还在同一个城市里。”

他把手搭在栏杆上,指尖碰到金属表面,带着白天积攒的微温:“在同一个城市里,那就不算远。”她听了,没有接话,只是转回去继续看着远处的湖面。天色正在一层一层地暗下去,路灯依次亮起。那些被点亮的坐标,正在以自下而上的顺序激活,把整条堤岸接成一条完整的亮带。

那天晚上她们在河坊街逛了很久。喵爱拉着他走了很多家小店,什么也没买,就是逛。路过一家卖手作木雕的店时她停下来看了很久,店主是一个头发花白的老人,正在低头刻一块木头,刀锋划过木面的声音细碎而持续,像是被减速播放的日志流。她没有买,只是站在那里看了一会儿。方铨铎站在她旁边,也没有催,也看着那个老人的手在木面上移动。那些被削下来的木屑以极其微小的单位从边缘脱离,在灯光下慢慢飘落。

后来她们去了一个小山坡,在西湖边上,不大,但能看到整个湖面。喵爱说那是她以前心情不好的时候会来的地方。她们在山坡上坐下来,中间隔着大约半个手掌的距离。远处的湖面在夜色里碎成一片细碎的光点,路灯在堤岸沿线均匀排列,像一串间隔固定的占位符,正在为即将写入的数据预留空间。她把手机拿出来,连上蓝牙音箱,放了一首歌,旋律很轻,没有歌词,只是几个音符在循环。他们谁都没有说话,只是坐在那里。

歌放完的时候,喵爱转过头看着他:“方铨铎,你以前有没有想过,你会来杭州?”他想了想:“没有。那时候我只想着怎么爬上去。”她把手机收起来:“那现在呢?”“现在想的是,我已经到了。”她笑了,很轻,像是完成了一次完整的数据交换。

那天晚上他回酒店的时候,手机收到她的消息:“方铨铎,明天你走之前,来一趟西湖边。”他回:“好。”她没有解释为什么,他也没有问。第二天早上他提前一小时到了约定的地点。喵爱已经站在那里了,还是穿着昨天的白T恤,手里攥着一样东西,走近了才看清是一本旧笔记本,封面已经磨损了,边角卷起,像被反复翻过很多次。

她把笔记本递过来:“这个给你。”方铨铎接过笔记本,翻开第一页,看到上面写满了字。是他以前给她的题解——那些他在语音电话里讲过的、写在草稿纸上拍给她看的、在深夜的消息里发送过去的解法。她全部抄了下来,一行一行,工工整整,像是把一段已经被拆散的数据重新拼回正确的顺序,再以更高的精度重新写入一遍。

他抬起头看着她。她没有解释那些字迹是怎么形成的,只是朝他挥了一下手:“好了,你可以走了。”然后她转身,沿着苏堤往相反的方向走去。方铨铎站在原地,看着她的背影,在晨光里被拉长又收短,一直到她走过第二座桥的拱顶,然后被桥面遮住。他低头看了一眼手里的笔记本,晚风正从湖面上吹过来,翻动纸页的边缘,像一段正在被缓慢重播的日志。他没有立刻翻看里面具体的内容,只是把本子合拢,收进背包里,然后转身往车站走去。

第十三章:九月

那年九月,方铨铎收到了北大的录取通知书。他拆开信封的时候正在客厅里喝水,手指有些湿,在信封上留下一个淡淡的指印。里面的纸是白色的,格式规整,和他在网上看过的版本一致。他看完之后把它平放在桌上,然后给喵爱发了一张照片:“到了。”

喵爱的回复是一张她站在清华校门口的照片,背后是秋天的银杏林,叶子正在变成金黄色:“我也到了。”方铨铎把那两张照片放在同一个相册里,备注名没有写任何东西,他知道它们不需要标注也能被正确地关联起来。

她们在北京开始了各自的生活。方铨铎在北大计算机系,喵爱在清华继续她的竞赛训练。学校之间隔着大约四十分钟的地铁路程,不算远,也不算近。她们见面的频率并不高,大部分时间都隔着屏幕。偶尔周末她会过来,或者在某个周三的下午他去清华找她。她们在各自的城市里,各自忙着自己手里的事,偶尔停下来,发一条消息过去——很短,有时候是一张照片,有时候是一句“今天天气不错”。

不需要长篇大论,也不需要频繁确认,像是两段各自运行的进程,不需要相互等待,也知道对方会在约定的同步点重新交汇,以相同的状态恢复执行。

有一天傍晚方铨铎在图书馆写作业,收到她的一张照片——拍的是清华校园里的一棵银杏树,满树金黄。他存了那张照片,然后给她发了一条消息:“下次我去的时候,你带我看那棵树。”她回:“好。”那个“好”字在对话框里静静地亮了很久,没有被新的消息顶上去。他把屏幕关掉,继续写作业,窗外暮色正沿着玻璃缓缓攀爬,像一道正在被逐步压缩的光带,以慢速持续输入。

第十四章:冬天

北京的冬天来得很早。十一月的时候暖气还没来,但风已经变冷了。方铨铎穿着厚外套走在去教学楼的路上,呼出的气在空中凝成白雾,在短暂悬浮后消散。他走到教学楼门口的时候手机震了一下,是喵爱发来的消息:“我今天训练结束得早,要不要出来吃饭?”他看了一眼时间,下午五点四十:“你在哪?”

“你们学校南门。”

方铨铎把书包送回宿舍,换了件外套,走到南门的时候看到她正站在一棵光秃秃的树下面,穿着一件浅灰色的羽绒服,戴着一顶毛线帽,帽沿压得很低,遮住了半边额头。她的脸被冻得有些发白,但看到他的时候还是笑了一下:“走吧,我饿了。”

她们在附近找了一家麻辣烫店,店面不大,暖气很足,窗户上结了一层白雾。她要了一碗加辣的,他拿了微辣的。两碗端上来的时候热气升腾,在两个人之间形成一道短暂的白雾屏障。她低头吃了几口,抬头的时候鼻尖上挂着一小滴汗珠:“你知不知道,我前几天做了一个梦。”他正夹着一块豆腐,停下筷子看着她:“什么梦?”

“我梦到你还在考数学。离交卷还有五分钟,你一道大题还没做完。我在考场外面看着你,特别着急,但我又不能冲进去。然后你忽然抬头,隔着窗户看了我一眼,意思是‘没写完’,接着你低下头继续写,也没停。”

方铨铎把那块豆腐放进嘴里,嚼完咽下去:“那后来呢?写完没有?”

“不知道。闹钟响了。不过你抬头看我的时候,表情不像是会挂的样子。”她说完低下头继续吃,没有再继续那个梦。方铨铎坐在对面,看着她的帽沿在暖黄色的灯光下投出的一小片阴影,也低头继续吃。

走回学校的路上,风比来的时候更大了。她走在前面,她回头看了他一眼:“那你下次别梦到我挂科了。”她停了一下:“好。下次梦见你写完了。”他看着她,冷风正从街道的尽头吹过来,在两个人之间形成一小片短暂的空隙,然后被各自的步伐填平。

第十五章:春天

冬天过去之后,日子开始变快了。方铨铎渐渐适应了北大的课程节奏,也学会了在那些他没把握的科目上分配更少的时间,把资源集中到他能做好的方向上。喵爱的训练进入了下半程,比赛和选拔交替出现,有时候她会连着好几天在深夜才回复消息,回的内容都很短,像一段已经被压缩到极限的数据包。

三月底的一个周末,喵爱来北大找他。她们在未名湖边走了两圈,湖边的柳树已经抽了新芽,嫩绿色的,在风里轻轻晃动。她走在他左边,步子不快不慢,两个人肩并肩走着,中间隔着一小段距离。走完第二圈的时候她忽然停下来,侧过头看着他:“方铨铎,我下个月要去参加选拔赛了。”

“我知道。”

“要是我没进,明年还得再来一次。”

“那就再来一次。”

她看着他,像是在看一段已被成功编译的代码,所有依赖都已正确链接,没有报错,没有警告,只等着被正式部署。她笑了一下,没有说别的,然后转回去继续走。方铨铎也继续走,两个人并肩走过第三圈的时候,她伸出手碰了一下他的手背,很快,像是一次短暂的确认,然后就收回了。他没有去握紧,他只是在接下来的几步里把步幅调整到和她的节奏一致,使每一次迈步之间的间隔时间相同。

第十六章:选拔赛

选拔赛在四月,结果出来那天方铨铎正在图书馆。他打开手机的时候看到喵爱发来的消息:“进了。”两个字,后面跟着一个句号。他盯着那两个字看了很久,然后打字:“我知道你会进的。”喵爱回了一张照片——她站在赛场的门口,举着手机拍了自己,背景是那栋灰白色的楼和远处的树。阳光照在她脸上,她身后那棵树的叶子正在以肉眼无法察觉的速度打开。他把那张照片存进了一个已经存了不少照片的相册里,然后合上电脑,收拾东西走出了图书馆。

那天晚上她给他打电话,声音里有一种他很久没听到的放松:“方铨铎,我下个月要去参加国际比赛了。”他说:“那你去。”她笑了一声:“你就说‘那你去’?不跟我说点什么别的?”他想了想:“那你去的时候,注意安全。”她在电话那头笑出了声:“方铨铎,你真的不会说话。”

“我知道。”

“但没关系,”她停了一下,像是在整理一段长数据的头部结构,“等你毕业了,我再教你。”

他没有接话。窗外北京的夜色正在亮起来,那些亮着的窗口以不同的间隔和强度分布在他视野所及的范围里。他握着手机坐了一会儿,然后说:“好。那我等你教。”

第十七章:七月

七月,喵爱去参加国际比赛。方铨铎没去现场,他在宿舍里看直播。画面里她坐在考场中间的位置,低头看着屏幕,她的键盘以固定的节奏被激活,没有停顿,没有犹豫,像是在执行一段已经被完整预加载的内存块,每一个跳转都指向预期的地址。

比赛结束的时候,成绩单弹出来——中国队四块金牌,她的名字排在第三位。他发了一条消息:“恭喜。”过了很久,大概隔了有十几分钟,她回了一句:“我看到你发的消息了。我这边人多,等回去再说。”

晚上他收到她的回复:“你说过你会等我,还作数吗?”他坐在书桌前,台灯开着,在桌面上投下一圈光晕:“作数。”她说:“那我回来找你。”他看着那行字,窗外远处的楼顶亮着几盏红色的信号灯,以固定的间隔闪烁着,节奏缓慢而稳定。

第十八章:毕业

时间过得很快。方铨铎毕业的时候,喵爱也结束了她在清华的课程。她们在北京租了一间房子,不大,但窗户朝南,能晒到太阳。搬进去的那天,她站在窗边看了一会儿,转身说:“以后我们在这里,你写你的代码,我写我的代码。”方铨铎正在拆箱子,把书一本一本地码上书架:“那窗台上放点什么?”她想了想:“多肉。”窗台上很快就多了一排多肉。它们不需要频繁更新,只要在固定的时间间隔内获得适量的光照和水分,就能持续运行下去。

日子平淡地过着。方铨铎在一家公司做后端开发,喵爱留在了清华的研究院。两个人早出晚归,晚上偶尔一起做饭、一起看电影,大部分时间各自坐在书桌前,屏幕的光把他们的轮廓映在墙上,像两段共享同一供电系统的进程,各自在各自的地址空间里运行着。

有一天晚上方铨铎正在改一段代码,喵爱坐在旁边看论文。安静了很久,她把论文放下,侧过头看着他:“方铨铎,我们结婚吧。”他正在检查一个边界条件,代码调试到一半,他停下操作,把视线从屏幕上移开:“你认真的?”她点了点头:“认真的。”“那什么时候?”“下个月。”“下个月太快了。”“不快。我都等了快七年了。”

方铨铎把代码窗口最小化,转过身看着她。台灯的光正把她的脸照成暖色调,头发垂在肩侧,她看着他,像是已经把所有依赖都预加载完毕,只等着他发出执行的确认信号:“那就下个月。”

她们没有办大婚礼。两边的家人在一起吃了顿饭,在一家不大的餐厅,包间里有一扇窗户,能看到外面的梧桐树。方铨铎的父母坐在一边,喵爱的父母坐在另一边,两桌之间隔着一道过道,但声音可以顺畅地传过去。陈煜轩从上海飞过来,坐在桌子末端,喝了一杯酒,然后走到方铨铎面前:“你好好对她。”方铨铎说:“我知道。”陈煜轩没有再说别的,端着杯子轻轻碰了一下他的杯子,像在发送一段不需要返回值的消息。

陈智清没有来。但婚礼前一天,方铨铎收到了一个快递。拆开是一本书,扉页上用铅笔写着一行字,字迹和当年题解末尾的那行一样:“送给你们的孩子。让她知道编程是从哪里开始的。”方铨铎看着那行字,把那本书和喵爱给他的笔记本放在同一格书架上。

结婚后的生活没有太大变化。她们还是每天各自忙自己的事,晚上一起吃饭,偶尔散步。只是窗台上的多肉从一排变成了两排。有一棵长得特别快,叶尖泛着淡红色,迎着那扇朝南的窗户,每一片叶子都以自己的速度展开,彼此之间保持着适当的间隔。

第十九章:方糖

方糖出生在一个冬天。那天下了很大的雪,方铨铎站在产房外面,窗户上结了一层雾,看不清外面的路,但他能看到那些白色的颗粒正以稳定的速度下落。护士抱她出来的时候裹着一张浅蓝色的被子,只露出一张很小的脸。方铨铎低头看着她,她的眼睛还没有睁开,但她的眉毛和喵爱很像——那种弯的弧度,在睡着的时候显得很安静。他没有抱她,只在旁边看了一会儿。

后来她慢慢长大,从会爬到会走到会说话。有一天她坐在书桌前,手里攥着一支铅笔,在纸上画了一只乌龟,线条很乱,但轮廓隐约能认出来。方铨铎走过去的时候她抬起头看着他:“爸爸,你知道怎么让乌龟往前走吗?”他想了想,在草稿纸上写了几行简单的代码。方糖盯着看了好一会儿,然后慢慢地把那些符号抄到了她自己的纸上,抄得很慢,但抄完之后她对照着方铨铎写的代码逐行检查了一遍,没有发现任何不匹配的地方。

多年以后,方糖在一个夏令营里遇到了一个人。那个人姓林,她不知道他的名字,也不记得他的长相,但她记得他坐在机房的最后一排,面前摊着一本很旧的书,边角都翻卷了,像是被反复打开过很多次。他在黑板上写了一段很短的代码,把一只小乌龟放在了屏幕中央,让它慢慢向前爬了五步,每一步都落下一条细长的轨迹。

方糖看着屏幕上那条轨迹,觉得那个速度和她在纸上画过的线条很像。她没有记住那节课的内容,但她后来在深夜写代码的时候,有时候会想起那个傍晚。而方铨铎不知道这些。他只是在那天接方糖放学的时候,听她说了一句:“今天有人教了我一个让乌龟走路的方法。”他点了点头,没有多问。

第二十章:后来

后来的日子,方铨铎没有再去细数。他继续写代码,喵爱继续做研究,方糖继续长大。窗台上的多肉越来越多,把整段窗台都铺满了,叶尖泛着或淡或深的红色,在阳光里安静地伸展。有时候方糖从学校回来,会在放学路上多绕一段路,在街角的面包店门口停下,凑到玻璃橱窗前看里面的蛋糕。她不会每次都走进去,只是隔着玻璃看一会儿,直到店里的灯光把她和橱窗里那些装饰图案的倒影叠在一起。然后她转身,继续走完剩下的路。

方铨铎不知道她那些停留最终会通向哪里,那些短暂的注视是否会在某个未来的节点被重新编译成别的输出。但每次她回来的时候,书包侧袋里总会露出一个纸袋的边角,里面装着一块已经被吃掉一半的菠萝包,上面的糖霜在路灯下微微发亮。而那些还没有被吃掉的另一半,正以它自己的节奏缓慢地填满她书包侧袋里的剩余空间。

窗台上那些多肉的叶片正以每天几毫米的速度伸展着,像一段段正在持续写入的日志记录。他坐在窗边,看着方糖的背影消失在街角的那棵槐树后面,从叶片之间漏下来的光点在路面上形成一层移动的纹理,在她跨过树影的边界时同时刷新了所有被监控坐标的偏移量。远处正在落下的暮色像一层正被缓慢渲染的色罩,从街道的尽头开始漫延,把树影和楼群的边缘都染成同一种渐进的深色。他没有去叫她回来,只是坐在那里等她自己绕完那一段弯,然后看着她从另一个方向重新出现在窗框的边缘,手里攥着那个已经被吃了一半的菠萝包,正低头用指尖捏着纸袋的折角,像在调试一段还有余量可用的缓存空间。她推开门走进来的时候带进来一阵傍晚的风,凉凉的,把窗帘吹起了一下,又落下去。

那阵风没有留下任何痕迹,但它被记录在了一扇打开的窗和一片被短暂移动过的窗帘之间。

(本番外完,后续直达春风又绿江南岸)