转生成为 galgame 男主又怎样(二)

· · 休闲·娱乐

-

十一

寒假前的最后一周,刘彦博老师在社团群里发了一条消息。

「寒假集训安排:1月15日-1月25日,人大附中联合集训。十一学校信息学竞赛社团全体参加。住宿统一安排,1月14日晚入住。」

人大附中。我的初中。

我看到这四个字的时候,手指在键盘上停了一下。陈雨翔的对话框还停留在上次的生日祝福——「听丛雨说你今天过生日?生日快乐。顺便问一句——丛雨是谁?」——我没有回复,他也没有再问。

丛雨是谁。这个问题我到现在也不知道该怎么回答。

我拿起手机,打开那个一直没有回复的对话框,打了几个字。

「1月15号,我来人大附中。」

这一次,他秒回了。

「真的假的?」

「真的。集训。」

「那必须见一面。你住哪?」

「学校安排,还不知道。」

「到了告诉我。我请你吃食堂。人大附中的食堂我比你熟。」

「我现在是客人了。客人就要听主人的安排。」

我盯着这行字,笑了一下。半年了,他的说话方式一点没变,还是那种带点欠揍的自信。不像我,半年的时间好像把我的语气都磨平了,从“我一定要进省队”变成了“再说吧”,从“我能行”变成了“还行”。

还行。我最近说得最多的词。

丛雨问我考得怎么样——还行。沉鱼旋问我心情怎么样——还行。三司绫濑问我适应不适应——还行。

还行。一个不痛不痒的词。说了等于没说,但又比“我不知道”好听一点。它像一道墙,挡在前面,让别人不要靠太近,也让自己不用走出去。

但陈雨翔从来不问“还行”背后的意思。他只会说“那你挺行的”,然后用那种欠揍的表情看着你,好像在说——你装什么装,我知道你在想什么。

1月14日下午,大巴从十一学校出发。北京的冬天黑得早,四点半天就已经开始暗了。车窗外的行道树光秃秃地往后跑,枝丫像速写本上快速划过的铅笔线条,一根一根地消失在后视镜里。

丛雨坐在我旁边靠窗的位置,把额头贴在玻璃上,呼出的热气在玻璃上凝结出一小片雾。她在雾上画了一个笑脸,两个点,一个弧度,然后又在弧度下面加了两颗虎牙。她画的是她自己——她笑起来的时候犬齿会露出来,像一只小动物。

“沉鱼旋一个人坐吗?”我指了指前面那排。

“她说她想一个人坐。”丛雨头也没抬,继续在她画的笑脸旁边加了一个对话框,对话框里写着“Ciallo~”,“你别打扰她,她在想事情。”

“想什么事情?”

“不知道。她最近总是这样子——一个人发呆,不说话,问她怎么了,她说没事。”

我没有再问。沉鱼旋坐在前面第三排靠窗的位置,围巾今天换成了深灰色的,搭在膝盖上,没有围在脖子上。从这个角度我只能看到她的侧脸——她正看着窗外,目光落在某一个我不知道的地方。那种目光不像是在看风景,更像是在找一个答案,或者找一个避风港。

大巴停在了人大附中门口。

我第一个下车。站在校门口,仰头看着那块熟悉的石碑。深秋的风——不,已经是冬天的风了——把地上最后几片干枯的叶子卷起来,在空中转了两圈,落在我的鞋面上。和半年前一模一样的景象。只不过那时候是九月,我是来办转学手续的,手里拿着一个牛皮纸信封,里面装着我的学籍档案。信封很轻,但我的手很沉。

现在是正月。我来集训,穿着十一学校的校服。

保安大叔换了人。以前那个爱在岗亭里用收音机听京剧的老头不在了——他每次听到我晚上十点还在往校外走都会说一句“小朋友又搞到这么晚”,我说“嗯,走了叔”,他挥挥手,继续听他的《空城计》。新来的这个年轻一些,他看了我的校服一眼,又看了后面下车的人,用对讲机说了句什么。他不认识我。这里已经没有人认识我了——不,还有一个人。

科技楼。四层的机房。我站过的每一级台阶都还在,我靠过的每一面墙都还凉。楼梯扶手的漆剥落了一些,露出底下银灰色的铁皮,和我离开时一模一样。连剥落的位置都一样——三楼到四楼之间,扶手拐弯的地方,有一块大约手掌大的漆面完全脱落了,铁皮上有一道浅浅的划痕,是我有一次用钥匙不小心刮的。

那道划痕还在。它没有被修复,没有被覆盖,没有人注意到它。它就像我这半年的经历一样,刻在某一个地方,不深不浅,不会消失,也不会被人看见。

“方铨铎,你走那么快干什么?”丛雨在后面喊。她的声音在楼道里弹了好几下,从一层弹到四层,再弹回来,叠在一起,变得又近又远。我没有回头。“方铨铎!”她又喊了一声。楼道里的回声像是有人在同时叫她自己的名字——方铨铎,方铨铎,方铨铎,叠在一起,像一个多重声部的合唱。

“我在这里上了三年初中。”我说,声音不大,但楼道把它送回去给我自己听,“三年。1095天。”

丛雨没有再喊了。她追上来,站在我旁边。她的呼吸有些急促,脸颊被冷风吹得发红,黄色的樱桃发圈在马尾辫的根部,在昏暗的楼道里很显眼——像一颗在夜空里忽然亮起来的星。

“你还好吗?”她问。

“还好。”

“你看起来不太好。”

“我看起来怎么样。”

“看起来像在忍。”

我说不出话来。

晚饭时间,食堂。

陈雨翔比我记忆中瘦了一些,脸上少了一些婴儿肥,下颌线变得分明。他穿着一件黑色的羽绒服,里面是人大附中的深蓝色校服毛衣,拉链拉到了最上面。他手里拿着两个餐盘,一个打了红烧排骨、土豆丝、米饭,另一个打了番茄炒蛋、青菜、米饭——他是按照我的口味打的。

“你怎么知道我还吃这些?”我问。

“你初中三年中午都吃这些。番茄炒蛋,青菜,米饭。排骨是有钱的时候才加的。”

“我现在也没钱。”

“那你吃我这份。”他把排骨那份推到我面前,自己端走了番茄炒蛋。

丛雨坐在我旁边,看着我们两个,眼睛转来转去的。她现在大概在确认一件事——陈雨翔和我之间,到底是什么关系。不是朋友,不是同学,不是对手。是用代码和排骨和深夜机房堆出来的一种东西,没有名字,不需要名字。

“你们俩好像在演电影。”她说。

“什么电影?”

“那种——久别重逢的电影。”

“我们不是久别重逢。”陈雨翔说,“我们只是半年没见。”

“半年也很久了。”

“半年,够一个人从省选第十七名变成NOIP四百六十八分。”陈雨翔看着我,筷子停在半空中,“也够一个人从‘我不想搞了’变成‘我还想再试一次’。”

食堂的日光灯嗡嗡地响着。排骨在碗里冒着最后一丝热气,番茄炒蛋的汤汁浸到米饭里,把白色的米粒染成了橘红色。

我没有说话。我在想,如果半年前那道有向图的题我做对了,我现在会在哪里?还会去十一学校吗?还会认识丛雨、沉鱼旋、三司绫濑、常陆茉子、周远舟、鞍马流吗?还会坐在这里,面对这碗番茄炒蛋吗?

不会。那道题错了,我的人生才对了。

“方铨铎,你发什么呆?”陈雨翔用筷子敲了敲我的碗边。清脆的一声,叮。

“没什么。”

“你以前就爱发呆。”他夹了一块排骨放进嘴里,嚼了几下,把骨头吐在餐盘边上,“你想什么呢?”

“想以前的事。”

“以前的事过去了。”

“我知道。”

“知道就别想了。”他站起来,端起空餐盘,“我去加个菜。你们还要什么?”

“不用。”我说。

“我要一个玉米羹。”丛雨举手。

“你不是我们学校的,你倒是挺不客气。”

“客随主便嘛。”

陈雨翔笑了一下,转身走向窗口。我看着他的背影,穿着人大附中的校服,走路的姿态和我记忆中一模一样。他还会在这个学校待一年半,然后去他该去的地方。而我,已经是另一个学校的人了。这栋楼的每一块砖都认识我,但我不再属于这里。

晚自习结束后,我一个人上了天台。

科技楼的楼梯从一层到四层都有灯,四层到天台的最后一段没有。我在黑暗中摸到了那扇铁门,学生卡插进锁缝里,轻轻一撬——锁发出咔嗒一声,开了。和半年前一模一样。这把锁从来没有被真正修好过,它像我一样,表面上看起来换了新的,骨子里还是旧的。

铁门推开的时候发出低哑的嘎吱声,像一个人在用他最后的力气说话。天台上风很大,灌进来的时候带着呼啸声,冬天的风像一把没有磨好的刀,钝,但冷。我站在边缘,双手插在口袋里,仰头看着天空。

没有星星。

北京冬天的天空就是这样,灰蒙蒙的,像一块被人反复使用过的橡皮,擦过太多东西,表面全是污渍,什么也映不出来。但我知道星星在那里——被云遮住了,被光污染盖住了,但还在。就像半年前的我,被省选的失败盖住了,被那道四十分的有向图埋住了,但还在。

“你怎么上来的?”

一个声音从身后传来。

我转过头。沉鱼旋站在铁门旁边,围巾没有围在脖子上,而是攥在手里。她穿着一件白色的长款羽绒服,头发散着,在夜风中被吹起来又落下去。

“门没锁。”我说。

“锁了。”

“那你怎么上来的?”

“你用学生卡撬的。我看到了。”

她走过来,站在我旁边,但没有靠着栏杆。她的手插在口袋里,围巾在手臂和身体之间夹着,风把围巾的一端吹起来,像一面很小的、深灰色的旗。

“你怎么在这里?”我问。

“跟着你上来的。”

“为什么跟着我?”

“因为你看上去有话想说。”

我看着她的侧脸。路灯的光从很远的地方透过来,几乎照不到天台上。她的轮廓在黑暗中很模糊,只有围巾的那一抹深灰色在风里晃动,像一个信号。

“我没事。”我说。

“我知道。”她说,“但你没事的时候也会想说话。”

“你怎么知道?”

“因为我也是一样的人。”

风吹过来。她没有缩脖子。北京的冬天,零下五六度,风从北边灌进来,像一把钝刀,割在脸上不疼,但冷。她的头发被吹起来,缠在脸颊上,又被风吹走,又缠上来,周而复始。

“以前我每次考完试,或者写完一道很难的题,就会上来。”我靠在栏杆上,铁栏杆很冷,冷意从衣服外面渗进来,“那时候陈雨翔有时候会陪我。有时候就我一个人。”

“一个人不冷吗?”

“冷。但冷比乱好。”

沉鱼旋低下头,把围巾慢慢围在脖子上。

“你以前是什么样子的?”她问。

“不爱说话。不爱交朋友。除了陈雨翔没什么人和我说话。”

“现在呢?”

“现在——好像也没什么变化。”

“有的。”她的声音在风里很轻,很稳,“你现在会说‘还行’了。以前你大概连‘还行’都不说。”

我愣了一下。

她是对的。

以前的我,连“还行”都不会说。别人问我怎么样,我不回答,或者只说一个“嗯”。那时候的我把自己关在一个很小很硬的壳里,不是不想出来,是不知道壳外面有什么。现在我知道壳外面有社团,有活动室,有咖啡机和茉莉花茶和糖炒栗子,有三司绫濑的奶茶和常陆茉子的保温杯和周远舟的笑话。有丛雨的Ciallo。

所以我说“还行”。不是敷衍,是在确认——我还在外面,还没有缩回去。

“要不要逛一下?”我忽然说。

“逛什么?”

“校园。我以前待过的地方。”

沉鱼旋看着我,沉默了两秒。

“好。”

我们从天台上下来,沿着楼梯一层一层往下走。四层的机房灯已经关了,三层的化学实验室还有人在做实验,透过门上的玻璃窗能看到里面穿着白大褂的学生。二层的图书馆门开着,灯亮着,但没有人。一层的大厅里有一面荣誉墙,玻璃橱窗里陈列着历届竞赛获奖者的照片和简介。

我在这面墙前停了下来。

我的照片不在上面。我初中的成绩不够好,最高只拿过NOIP提高组二等奖,没有资格上这面墙。但我曾经幻想过——如果那道有向图做对了,如果省选进了前十,我的照片会不会被贴在这里,和其他获奖者一起,被玻璃罩着,被路过的人看,被后来的学弟学妹指着说“这个学长好厉害”。

但现在我的照片在十一学校的活动室里。不在墙上,在丛雨的贺卡上。画得歪歪扭扭的,不像我,但我知道那是我。

“这是荣誉墙。”我说。

沉鱼旋看着橱窗里的照片,没有说话。

“我以前很想上这面墙。”

“现在呢?”

“现在——不太想了。”

“为什么?”

“因为我现在有别的墙要上。”

她没有追问。她走到橱窗的另一边,在一张照片前停了下来。那张照片上是一个扎着低马尾、戴着银框眼镜的女生,表情很淡,没有笑。照片下面的介绍写着她的名字和获奖记录——NOIP提高组一等奖,省选第七名,NOI银牌。

“这个女生看起来很厉害。”沉鱼旋说。

“嗯。”

“你认识她吗?”

“不认识。”我顿了顿,“但我在十一学校认识了一个和她有点像的人。”

沉鱼旋看了我一眼,目光在我脸上停了一下,然后移开了。

我们走出科技楼,沿着主路往操场的方向走。左边的教学楼、右边的实验楼、前面的图书馆、后面的体育馆,路灯把整条路照成暖黄色,偶尔有一两个学生经过,裹着厚厚的衣服,脚步匆匆地往宿舍方向走。

“这栋是教学楼。我在二楼上数学竞赛课,三楼上物理实验课,四楼上信息学竞赛课。”

“你在同一栋楼上课?”

“对。有时候一天在同一栋楼里上六节课,从二楼爬到四楼,再从四楼爬到二楼。爬楼梯的时候我就在脑子里复盘做过的题。”

“你不会撞到人吗?”

“撞过。好几次。”

沉鱼旋的嘴角动了一下。不是笑,是那种觉得“这个人的确会做这种事”的表情。

我们走过操场。操场很大,四百米标准跑道,中间是足球场,草已经枯了,踩上去发出干燥的沙沙声。跑道上还有人在夜跑,戴着耳机,呼出的白气在路灯下一团一团地散开。

“我以前在这里跑一千米,跑到第三圈就吐了。”

“你体质这么差?”

“不是体质差,是跑得太猛。我想跑进三分半,所以第一圈就冲,冲到第二圈就崩了。”

“那你后来跑进去了吗?”

“没有。但我学会了一件事——前两圈压着速度,最后一圈再冲。很多事情都是这样的。”

沉鱼旋没有说话。我们并排走在跑道上,她的步伐比我小一些,但频率比我快,所以一直保持着同一个水平线。压着速度,最后一圈再冲——我在心里默念了一遍这句话。半年了,我有没有做到这一点?省选第一年我是第一圈就冲了,冲到一半就崩了。现在我还在第一圈,我不能冲。

“你以前也在这里跑步吗?”我问她。

沉鱼旋的脚步顿了一下。

“……没有。”

她顿的那一下,很短暂,大概只有零点几秒。但我捕捉到了。

“我初中的学校没有操场。”她说。

“没有操场?”

“没有。我们就在教学楼前面的空地上跑步,绕着花坛,一圈大概一百米。”

“那是什么学校?”

她没有回答。

风把她的头发吹起来,遮住了她的侧脸。她没有伸手去拨,任由头发在脸上挂着。

我们安静地走了很久。操场一圈四百米,走了大半圈,从主席台走到弯道,从弯道走到直道。我们的影子在路灯下被拉得很长很长,两个影子叠在一起的时候,像一个人。

“还有一个地方。”我说。

“哪里?”

“教室。我以前上课的教室。”

“现在还能进去吗?”

“不知道。去看看。”

教学楼已经锁门了。一楼大厅的玻璃门关着,需要用学生卡刷卡才能进。我摸了摸口袋——十一学校的学生卡,在人大附中的读卡器上大概刷不开。

“走侧门。”我说。

侧门在教学楼的东侧,平时不怎么用,门锁是那种老式的旋转锁,以前我们放学后想进教室拿东西,都是从这扇门进去的。旋转锁的原理很简单——用力往下一压,锁舌就会缩回去。需要技巧,但不需要钥匙。

我压了三次,锁舌缩进去了。

门开了。

我的初三教室在四层。楼梯很暗,声控灯亮一下灭一下,我们的脚步声在楼道里被放大了好几倍,像有更多的人跟在我们身后。

“你以前坐哪个位置?”沉鱼旋问。

“靠窗,最后一排。”

“为什么坐最后一排?”

“因为前面太挤了。”

我推开教室的门。门没有锁,大概是清洁工阿姨打扫完之后忘了锁。教室里很暗,只有走廊的光从门上的玻璃窗透进来,把课桌椅照成一片模糊的深色轮廓。黑板上写着值日生的名字和明天的课程表,粉笔字有些潦草,但能辨认。

我走到靠窗最后一排的位置,坐下来。桌面上很干净,没有贴纸,没有划痕。

这不是我的桌子。我的桌子现在坐着别人。上面贴着别人的贴纸,刻着别人的划痕。那些我在一千多个日夜里留下的痕迹,已经被新的痕迹覆盖了。就像我的名字从荣誉墙上被摘下来——不,从来没有被贴上去过。

沉鱼旋站在我旁边。

“这是你的位置?”

“这是我以前坐的位置。”

“你有什么感觉?”

我想了想。

“像一个数组被重新分配了。”

沉鱼旋看着我。

“原来的数据还在,但地址已经变了。你还能访问到吗?能。但你不能用原来的指针了。”

这是我第一次真正解释清楚自己的感觉。不是伤感,不是怀念,是一种数据迁移后的错位感——我还在这里,但我已经不在这里了。我可以读,不能写。

“我们出不去了。”

沉鱼旋站在教室门口,手按在门把手上,用力压了几下。门没有动。

“锁了?”我走过去。

“锁了。”

我压了几下把手。确实是锁了。刚才我们进来的时候门是虚掩着的,没有锁,但风把门吹上了,碰上了锁舌。这种老式门锁从外面可以用钥匙开,从里面只能用把手——但如果锁舌碰死了,把手也打不开。

我掏出手机。没有信号。人大附中的教学楼一到晚上信号就很差,再加上我们在四层,混凝土墙把最后一点信号也挡死了。

“你有信号吗?”我问沉鱼旋。

她拿出手机看了看,摇了摇头。

我看了看时间。晚上十点四十七分。宿舍十一点关门,如果十一点之前我们没有回去,带队老师会发现我们不在。但发现我们不在了,能找到这里吗?能想到我们在四楼的一间教室里吗?

“等吧。”我说,坐回靠窗最后一排的位置上,“明天早上清洁工阿姨来打扫卫生的时候,门就会开了。”

沉鱼旋站在门口,犹豫了几秒,然后走过来,坐在我旁边的座位上。

那是陈雨翔以前坐的位置。

“你冷吗?”我问。

“有一点。”

我脱下外套,递给她。她看了看我,又看了看外套,没有接。

“你自己穿。”

“我不冷。”

“你骗人。”她说,“你的手在抖。”

我低头看了看自己的手。没有在抖。她在骗我。但她骗我的目的不是让我穿外套,而是让我知道她在关心我。这一点她做得比丛雨隐晦一万倍。

我没有拆穿她。把外套披在她肩膀上。

她这次没有拒绝。

我们并排坐着,面前是空荡荡的教室,窗外的月光很淡,几乎照不进来。黑板上粉笔字的白色痕迹在黑暗中发着微弱的荧光——值日生的名字,“李明”,“张薇”,明天周三,课程表上第一节课是数学。

“方铨铎。”

“嗯。”

“你以前上课的时候,会想什么?”

“想代码。”

“一直想?”

“一直想。数学课想图论,物理课想计算几何,英语课想变量命名。”

“语文课呢?”

“语文课想——为什么作文不能写成伪代码。”

她轻轻地笑了。不是那种“好笑”的笑,是那种“你这个人真的很有意思”的笑。声音很小,在空荡荡的教室里来回弹了几下,像一个很轻很轻的回声。

“你呢?”我问,“你初中的时候,上课会想什么?”

沉默。

“想快点放学。”她说。

“放学之后呢?”

更长久的沉默。

“回家。”

她只说了两个字。

时间一分一秒地过去。

手机上的数字从十点四十七变成十一点零二,从十一点零二变成十一点十八。沉鱼旋靠在我旁边的桌面上,手臂枕着头,呼吸很轻,像怕打扰到什么。

她睡着了。

我侧过头看着她的侧脸。月光从窗户最上面那一小片没有被遮挡的玻璃透进来,落在她的额头上,把她的皮肤照得很白很薄。睫毛很长,在眼下投下一小片扇形的阴影。嘴唇微微抿着,像在梦里也在想着什么事情。

她今天说的话比平时多。

她说“我的学校没有操场”。她说“回家”这两个字的时候,声音抖了一下——不是那种因为寒冷或者疲惫的抖,是那种因为不想继续说下去、但不得不说的抖。那种抖我见过,在我自己身上。省选成绩出来的那天晚上,我妈打电话来问我考得怎么样,我说“没进”。那个字说出来的时候,我的声音也抖了一下。

我很困了。

不是身体上的困,是那种走了很远的路、说了很多的话、回忆了很多的事情之后,从骨子里泛上来的困。像一棵树,被连根拔起,在空中飞了很久,终于落在了一块土地上,想把自己重新种下去,哪怕只是暂时。

我把外套从沉鱼旋肩膀上拉上来一些,盖住她的脖子。

她动了一下,没有醒。

然后她靠了过来。

不是一个动作,是一个缓慢的过程。先是肩膀碰到了我的手臂,然后是她的头从桌面上滑下来,靠在了我的肩膀上。她的头发蹭着我的脖子,很痒,但我不想动。一点也不想。

我的头也低了下去。

不是故意的。是不知不觉的。

我们的头靠在一起。她的发顶抵着我的太阳穴,头发上有淡淡的洗发水味道,不是花香的,是一种很干净的、像是雨后空气的味道。

教室很暗。月光很淡。手机黑屏了。

我闭上眼睛。

不知道过了多久。

大概是半夜。

我在半睡半醒之间,感觉到肩膀上有重量。不是外套的重量,是她的头。她整个人都靠了过来,不是靠着我的肩膀,是靠在我身上。像一个在海上漂了很久的人,终于找到了一块浮木。

我的手臂不知道什么时候绕过她的肩膀,搭在她羽绒服的袖子上。不是我放的——是它自己放的,像有一种力在牵引。就像铁屑朝着磁铁飞奔,像河流朝着大海奔涌,像指针朝着北方——不是选择,是本能。

她的手攥着我的衣角。

攥得很紧。指节发白。

她在梦里也在攥着什么东西。

我低头看着她的手。

很小。很白。指甲涂着透明的甲油。

左手中指上戴着那枚银色的戒指。

我没有问她这枚戒指的意义。

没有问她为什么不愿意下水。

没有问她为什么在网吧待了三天。

没有问她的初中为什么没有操场。

没有问她“回家”那两个字后面的省略号里,藏着什么。

我大概永远不会问。

因为那些问题的答案,不在她的嘴里,在她的沉默里。沉默不是没有答案,是不敢说。我不敢问,不是不关心,是不想让她再说一次她不想说的话。

窗户上结了一层薄薄的霜。

月光透过霜,变得更淡了,淡到几乎照不清任何东西。

我攥紧了她攥着我衣角的那只手。

她没有醒。

但她攥得更紧了。

十一

后来我在教室的窗户上看到了日出。

不是那种轰轰烈烈的日出,没有满天的红霞,没有刺破云层的金光。北京的冬天的日出是节制的,吝啬的,像一个不大方的人,只肯给你一点点光线,多了不给。

天从黑色变成深灰色,从深灰色变成浅灰色,从浅灰色变成灰白色。然后太阳从东边的楼顶后面露出来,没有光芒万丈,只是把那一小片天空染成了很淡很淡的橘色。

沉鱼旋还在睡。

她的手已经松开了我的衣角,但她的头还靠在我的肩膀上。她的呼吸很均匀,一起一伏的,鼻息扑在我的校服袖子上。

我没有叫她。

我想让她多睡一会儿。

在这个曾经不属于她的地方。

在这个曾经属于我、现在已经不属于任何人的教室里。

窗外的光线一点一点地亮起来。

我低下头,把脸埋进她的头发里。

不是因为喜欢。

是因为——在那么多的以前和未来之间,在人大附中和十一学校之间,在省选的失败和NOIP的成功之间,在那些我想说但说不出口的话和那些我不想说但被听见了的话之间——

这一刻,是我唯一不用解释自己是谁的时刻。

方铨铎

人大附中毕业生

十一学校高一学生

信息学竞赛社团成员

在这些标签之外,在这个空荡荡的教室里,在冬天的第一缕阳光照进来之前,我只是一个抱着一个女生、在黑暗中等天亮的人。

-

十二

集训的第二天早上,教室里来过人了。

清洁工阿姨六点半推开门的时候,看到两个穿着十一学校校服的学生靠在一起坐在最后一排。她手里的拖把差点没拿稳。

“你们……怎么在这?”

沉鱼旋先醒的。她睁开眼睛,看到自己靠着我的肩膀,看到我的手搭在她的羽绒服袖子上,看到她的手指还攥着我的衣角——指节已经从发白变成了泛红,攥了一整夜,血液回流的时候带着密密麻麻的麻刺感。

她没有尖叫。没有推开我。没有做任何激烈的动作。她只是很慢很慢地把手松开了,像拆卸一枚引信快要烧完的炸弹——每一个动作都经过精确计算,确保不会发出声音,不会引起震动,不会让我醒来。

然后她站起来。腿应该是麻的,因为她站起来的动作比平时慢了很多,扶着桌沿站了一会儿,然后把围巾从椅背上拿下来,围在脖子上,走出了教室。她没有看我。一次都没有。

清洁工阿姨看着她的背影,又看了看我,欲言又止,低下头开始拖地。

我其实已经醒了。在她松开我衣角的那一刻就醒了。但我的眼睛一直闭着,因为我不知道睁开之后该说什么。谢谢你让我靠了一夜?对不起占了你的肩膀?昨晚的月亮很圆?

我的大脑在搜索可能的措辞,像在一个没有排序的数组里找一个不存在的值——遍历所有可能,然后发现没有一个是对的。

早上的集训在机房进行。

人大附中的机房比十一学校的更大,电脑更多,人也更多。三个学校联合集训,加上人大附中本校的选手,机房里坐了将近六十个人。键盘声像暴雨,密集地砸在每一块桌面上。

我走进机房的时候,沉鱼旋已经坐在了最里面的角落。那是一个我之前没有见过她坐的位置——靠墙,键盘声是小了一圈,但光线很暗。她以前永远坐在靠窗的位置,采光好,能看到窗外,今天她选择了角落。不是巧合。

丛雨在我旁边坐下,压低声音问:“你昨晚去哪了?带队老师找你找了好久。”

“在教室里睡着了。”

“哪间教室?”

“以前上课的教室。被锁在里面了。”

“和谁?”

我沉默了一秒。“……一个人。”

丛雨看了我一眼,没有追问。她的目光越过我的肩膀,往沉鱼旋坐的那个角落扫了一下,速度很快,像蜻蜓点水,水面上几乎看不到涟漪。但我知道她看到了什么——角落里的那个位置,沉鱼旋的白色羽绒服,她今天换了一根发圈,黑色的,没有樱桃,没有蝴蝶结,全黑的,把头发扎成了低马尾。她很少扎低马尾。低马尾是一种防御姿态——把头发收短,把脖子藏起来,让自己变小一点,不那么容易被看到。

我在想,她是不是在躲我。

上午的集训内容是模拟赛。题目比NOIP难,比省选简单,大概在两者之间。第一道题是线段树,第二道题是数位DP,第三道题是费用流,第四道题是后缀数组。

我做得不算快,但很稳。线段树写了二十分钟,数位DP写了四十分钟,费用流写了一个小时,后缀数组只写了暴力,拿了三十分。总分三百三十分。

提交完第四题的时候我抬起头,下意识地往角落里看了一眼。

沉鱼旋的位置是空的。

电脑还开着,屏幕上是代码编辑器,光标在最后一行闪烁。她的围巾搭在椅背上,深灰色的那一条,中间有一段被她攥得皱皱的,大概是她走的时候随手搭上去,没有像平时那样叠好。

“沉鱼旋呢?”我问旁边的周远舟。

“出去了。好像是去接水。”

“接水接了多久?”

“有一阵子了。”周远舟看了看表,“大概二十分钟。”

我站起来,走出机房。

饮水机在走廊尽头的拐角处,从机房走过去大概三十步。地上铺着灰白色的瓷砖,头顶是日光灯管,有一段走廊的灯管坏了,光线忽明忽暗,像一个人在做梦——明明醒着,但周围的环境在闪烁,让人分不清现实和幻觉。

沉鱼旋不在饮水机旁边。饮水机的指示灯亮着红灯,加热中,没有人。

我沿着走廊继续往前走。经过楼梯口、经过洗手间、经过一间锁着的器材室,在走廊尽头的窗户前看到了她。她站在那里,面对着窗户,双手撑在窗台上。窗玻璃上结了一层薄薄的雾气,她没有在窗上画画——不像丛雨那样会在起雾的玻璃上画笑脸。她只是站在那里,看着自己被雾气模糊的倒影。

“沉鱼旋。”

她的肩膀微微动了一下。不是吓得跳起来的那种动,是身体内部某根弦被拨动了,振动传到了肩膀,只有一下。

“你怎么出来了?”她没有转头,声音很平,像在问一个很普通的问题。

“你出来太久了。”

“我在接水。饮水机的水烧得慢。”

她的手边没有水杯。饮水机在三十步之外,她的水杯在机房的桌上。

我没有戳穿她。我走到她旁边,也把手撑在窗台上。玻璃很凉,凉意从手心钻进皮肤,沿着血管往上游。

我们并排站着,看着窗外。

窗外是人大附中的操场。操场上有人在跑步,穿着深蓝色的运动服,一圈一圈地绕。从四楼往下看,人变得很小,像等宽h算法里那些被不断细分的小球。

“沉鱼旋。”

“嗯。”

“你还记得昨晚的事吗?”

沉默。大概五秒。

“什么事?”她的语气像在说“我不记得了”,但她的手指在窗台上蜷了一下。食指和中指微微弯曲,指腹离开了玻璃,只剩下指尖还贴着。人在说谎的时候,手往往比嘴诚实。

“没事。”我说。你不记得就好。

她没有说话。窗户上的雾气凝结成水滴,开始往下流。水滴的轨迹是随机的,有时候笔直地流下去,有时候在半路拐一个弯,绕过另一颗水滴。像两个人在人群中靠近、交错、分开——不是没有引力,是引力还不够强。

午饭的时候,沉鱼旋没有来食堂。

丛雨端着餐盘在我对面坐下,今天打了糖醋排骨、清炒时蔬、一碗紫菜蛋花汤,汤碗放在餐盘最上面的凹槽里,和三司绫濑发在群里的用餐规范一模一样——三司绫濑专门做过一个文档,标题是「集训期间饮食建议」,里面列出了早餐、午餐、晚餐的营养搭配公式,糖醋排骨不在公式里,但丛雨还是打了。

“沉鱼旋呢?”丛雨问。

“不知道。”

“你没和她在一起?”

“我为什么要和她在一起?”

丛雨用筷子戳了一下碗里的米饭,把米粒拨来拨去,没有吃。

“你们俩今天怪怪的。”她说。

“哪里怪?”

“说不上来。就像——”她想了想,“就像两个人在同一行代码里写了两个互相矛盾的语句,编译器没有报错,但逻辑上不通。”

“你这个比喻不行。”

“那你给我一个好的比喻。”

我想了想。“就像两个人都知道对方在线,但都不先发消息。”

丛雨放下筷子,双手撑在桌上,微微探过身来看着我的眼睛。食堂的日光灯在她瞳孔里映出两个很小的白色光点,像星星——不,像日光灯。

“方铨铎。”

“嗯。”

“你和沉鱼旋之间发生了什么?”

“什么都没发生。”

“你看着我的眼睛说。”

我看着她的眼睛。褐色的,瞳孔很大,眼白的部分很干净,没有血丝。她的睫毛翘翘的,涂了很淡很淡的睫毛膏——她平时不涂的,今天涂了,大概是起太早了。

“什么都没发生。”我说。

她盯着我看了三秒。

“你没说谎。”她坐回去,重新拿起筷子,“但是你没说全部。”

她夹了一块排骨放进嘴里,嚼了几下,吐出一小块骨头。骨头落在一块干净的纸巾上,她用手把骨头拨到纸巾中央,然后对折,包好,放在餐盘旁边。每一步都很仔细,像是在处理一个不需要被任何人看到的东西。

下午自由训练。

我坐在靠窗的位置写代码。沉鱼旋坐在最里面的角落。我和她之间隔了四排电脑、一条过道、三个正在讨论题目的同学、和一个饮水机。以前是七十厘米,现在是七米。

七米。走过去要十步。手伸不到。目光可以。

我在写一道树形DP的题。写着写着,我的余光会不由自主地往那个角落飘。不是刻意的,是一种不受控制的搜索——像在有序数组里二分查找,每次切掉一半,剩下的那一半始终包含目标。目标一直在那里,但我不能直接访问。

她低着头,看着屏幕。手指在键盘上敲得很慢,一行代码删了写、写了删,像是不知道自己在写什么。她平时不是这样的。她平时的代码干净得像诗,每一行都有它存在的理由。今天她的代码像是一篇被反复修改过的作文——字还是那些字,但句子之间少了某种东西。

晚饭后,陈雨翔来找我。

“走,带你去看个东西。”

“什么?”

“来了就知道了。”

他把我带到科技楼的顶层——不是天台,是比天台低一层的设备层。那里有一扇很小的窗户,平时被一块木板挡着,他把木板掀开,窗户后面是一个窄窄的平台,只能容两个人并排站着。

“这是哪里?”我问。

“我以前发现的。”他指了指远处的楼群,“你看那边。”

从他的手指延伸出去的方向,是人大附中的全景。教学楼、实验楼、图书馆、体育馆、操场、食堂、宿舍楼,还有校门口那条种满银杏树的路。从高处看下去,一切都变得很小,但一切都看得很清楚。

“你以前不是问我,为什么你省选考砸了我还说你是有天赋的人吗?”

“嗯。”

“因为天赋不是不犯错。天赋是犯错了之后还能站起来。你站起来了。”他说这话的时候没有看我。他的目光落在那片楼群上,像一个将军在检阅自己的阵地——不是炫耀,是确认,确认这些东西都还在。

“你现在在十一学校,有社团,有朋友,有愿意陪你熬夜写代码的人。”他转头看着我,“你比以前好了。不是成绩好了,是整个人好了。”

路灯一盏一盏地亮起来。从高处看,马路变成了一条发光的河,车灯像萤火虫一样在河里流动。人大附中的校园被路灯勾勒出一个很清晰的轮廓——我太熟悉这个轮廓了,闭着眼睛都能画出来。但此刻,这个轮廓看起来比我记忆中的小了一些。是它变小了,还是我长大了?

“陈雨翔。”

“嗯。”

“谢谢你。”

“谢我什么?”

“谢谢你把那本《信息学奥赛一本通》放在我桌上。”

他沉默了一下。

“那本书你现在还看吗?”

“不看了。但我还留着。”

他笑了一下。没有声音,只是在嘴角。

回到宿舍楼的时候,已经快九点了。

集训的住宿安排在学校对面的宾馆,两人一间。我和周远舟一间,丛雨和常陆茉子一间,三司绫濑单独一间——她作为社长,需要有一个安静的地方处理社团事务。沉鱼旋和谁一间?

我走到公告栏前看了一眼住宿安排表。

「沉鱼旋,单独一间,302」

单独一间。她的名字下面没有第二个人。

我上楼的时候,在楼梯拐角遇到了她。她正要下楼,手里拿着一个水杯,杯子里是白水,还冒着热气。她看到我的时候,脚步慢了一下——不是停下,也不是加速,是把原本的速度减慢了零点几倍,像一段被慢放的视频。每一帧都在,但每一帧之间的间隔变长了。

“沉鱼旋。”

她停下来,但没有看我。她的目光落在楼梯扶手拐弯处那块剥落的漆面上,落在那道我用钥匙划出的浅痕上——那是三年前留下的痕迹,现在被另一个人看到了。

“你住302?”我问。

“嗯。”

“一个人?”

“嗯。”

“为什么?”

“我自己申请的。”

楼道里的声控灯灭了。我们没有跺脚,也没有咳嗽,灯没有重新亮起来。黑暗中我听到她的呼吸声,很轻,很稳,和昨晚靠在我肩膀上的时候一模一样。呼吸不会骗人——一个人醒着的时候可以控制自己的表情、语气、动作,但控制不了呼吸。她的呼吸告诉我,她没有表面看起来那么平静。

“方铨铎。”

“嗯。”

“昨晚的事——”

“什么事都没发生。”我说。

黑暗中的沉默。大概是几秒。

“对。”她说,“什么都没发生。”

她说完这句话,从我身边走过去了。楼梯上她的脚步声越来越远,从清晰变得模糊,从模糊变得听不见。声控灯在她经过的时候亮了一下,照出她白色羽绒服的一角,然后灭了。一亮一灭之间,我看到了她脖子上挂着的那根红绳。

银色的U盘。

“行到”。

她一直戴着。

接下来几天,我和沉鱼旋之间保持着一种奇怪的距离。

不远。不近。不远不近。

在机房训练的时候,她坐在角落里,我坐在靠窗的位置。中间隔着的那些电脑和人,像一道刻意布置的屏障,不是她布置的,也不是我布置的,是我们共同布置的——两个人都没有试图越过它。

吃饭的时候,她坐在食堂的另一头。不是最远的角落,但也不是离我最近的位置。她选了中间的一个点,不远不近,恰到好处。恰到好处——这个词有时候是一种智慧,有时候是一种遗憾。

晚上自由活动的时候,她一个人在操场上走。我在科技楼的天台上看她。从高处看,她变得很小,白色的羽绒服在深色的操场上很显眼。她走得很慢,走了一圈,又走了一圈,走了第三圈的时候停下来,站在跑道边,仰头看着天。没有星星。她还是仰着头。她在看什么?我不知道。

丛雨注意到了我们之间的这种若即若离。她什么都没说,但她的目光开始在我和沉鱼旋之间来回切换,频率越来越高,像一个人在两个频道之间反复切换,试图找到一个能收到清晰信号的位置。

有一天晚上,她在宿舍里给我发了一条消息。

「方铨铎。你觉得沉鱼旋是一个什么样的人?」

我看着这条消息,想了很久。

「她是一个不想被看到的人。」我打了这几个字,又删掉了。

「她是一个很安静的人。」发了出去。

过了几秒,丛雨回了:「我也是很安静的人。为什么你对我不是这样?」

我没有回复。不是不知道怎么回答,是知道答案但说不出口。因为你不需要我小心翼翼地靠近。因为你不会在我靠近的时候退后。因为你把你的笑、你的话、你的马尾辫、你的黄色樱桃发圈、你剥的栗子、你分给我的半颗糖,都大大方方地放在我面前,不需要我去猜、去找、去试探。

沉鱼旋不一样。她是一本合着的书。封面很好看,书名很短,作者栏写着她的名字。但你翻不开。不是没有钥匙——是不确定打开之后,里面写的是不是你想看的内容。

集训的最后一天,三司绫濑组织了一次聚餐。

在学校门口的小饭馆,和上次给我过生日是同一家。不同的是这次没有蛋糕,没有蜡烛,没有礼物,只有菜和可乐和奶茶和空调开到最大的暖风机。

丛雨坐我左边。沉鱼旋坐我右边。中间隔着一个空位。那个空位上放着一盘没有人动的凉拌黄瓜。

“沉鱼旋,你怎么不说话?”三司绫濑端着可乐杯,目光越过桌子落在她身上。

“在听。”

“你一直在听,从来不说话。你也说几句。”

沉鱼旋夹了一块黄瓜,放进嘴里,嚼了三下,咽下去。

“菜很好吃。”她说。

周远舟笑出了声。常陆茉子的嘴角动了一下。丛雨低下头,用筷子在碗里画圈。三司绫濑叹了口气,那口气里有“算了”的意思,也有“你赢了”的意思。

我转过头,看着沉鱼旋的侧脸。饭馆的灯光很暖,橘黄色的,照在她的脸上,把她的皮肤染成了很淡的蜜色。她低着头,用筷子把盘里的黄瓜一块一块地夹到自己的碗里,夹得很慢,像是在数。

她想说但说不出口的话,是不是和我想说但说不出口的话,是同一句?

我不知道。

饭后,大家陆续散了。

丛雨被常陆茉子拉去买奶茶。周远舟和三司绫濑讨论一道费用流的题,边走边比划,两个人的影子在路灯下被拉得很长。鞍马流走在最后面,双手插在口袋里,口袋里鼓鼓的——大概又放了栗子。

我和沉鱼旋走在最后面。之间隔着一臂的距离。不远。不近。不远不近。

“方铨铎。”

“嗯。”

“你这几天一直在看我。”

“……”

“我也一直在看你。”

路灯下,她停下了脚步。我也停下了。

她转过身面对我。路灯的光落在她脸上,把她的睫毛照得很长。她的嘴唇微微动了一下,像有话要说,但那段话在从脑子到嘴的路上丢失了。

“那天晚上的事。”她说,“我记得。”

风吹过来。北京的冬天,零下好几度的风,把她脖子上的红绳吹起来,U盘在绳子上轻轻晃动。

“我也记得。”我说。

她低下头,看着自己脖子上的U盘。金属的表面反射着路灯的光,一小片金色的光斑在她锁骨的位置跳动。

“行到水穷处,坐看云起时。”她念了这两句诗,声音很小,像是念给自己听的。然后她抬起头,看着我的眼睛。

“方铨铎。”

“嗯。”

“我现在还在水穷处。但我不急。”

“为什么?”

“因为你在我旁边。”

她说完这句话,转身走了。步子不快不慢,和平时一模一样。她走过路灯的时候,影子从身后转到身前,又从身前转到身后。影子变长变短、变淡变浓,但始终没有和她分开。

我站在路灯下,看着她的背影越来越远,越来越小。

白色的羽绒服在深色的夜里慢慢地变成一个点,然后消失在校门口的阴影里。

手里的手机震了一下。丛雨发来的消息。

「方铨铎,你快来,奶茶店的珍珠卖完了,我不知道该点啥了。」

我笑了一下。把手机放回口袋。

丛雨和沉鱼旋。

一个在我面前跑来跑去,喊着“你快来你快来”。一个在角落里安静地坐着,说“不急,你在我旁边”。

若即若离。

不是她离我远。是我离她不够近。

十一

那天晚上,我回到宿舍,打开电脑。

OJ上有一道新的题目,是沉鱼旋在自由训练的时候做的那一道——树形DP。我点开她的提交记录,看到了她的代码。一百一十二行,每一行都干净得像诗。她用了一个很巧妙的DP状态定义,把时间复杂度从O(n2)降到了O(n)。

我在她的代码下面留了一条评论。不是问技术问题,不是讨论算法优劣。

「你的代码写得很好。」

过了一会儿,页面刷新了。

她的回复只有一行。

「谢谢。」

那个“谢谢”后面,没有句号。

常陆茉子的句号是句号。沉鱼旋的句号是省略号。今天的“谢谢”什么标点符号都没有。

是没有写完。是不敢写完。是写完了之后发现没有合适的标点符号能表达那个意思,所以什么都不加,留给看的人自己填。

我盯着那两个字看了很久。

窗外的月亮很细,像一道用指甲划出的痕。

-

十三

春节刚过,正月的北京还冷得刺骨。

三司绫濑在社团群里发了一条消息,字数和平时一样少,但每个字都像钉子一样钉进每个人的屏幕里。

「冲刺省选全真模拟。2月1日-2月20日,连续二十天。每两天为一轮:第一天考Day1,第二天考Day2。赛制与省选完全一致——每天三道题,每题100分,时间8:00-12:00。下午讲题复盘,晚上自由训练。没有休息日。缺席一次,取消省选推荐资格。」

二十天。十轮模拟。六十道题。六百分满分,每天从头算起。

白板上,三司绫濑用红笔写下了一行字,笔触比平时重了很多,红色的墨水在白板上微微洇开,像血管的末梢。

「省选全真模拟 第1轮 Day1 倒计时:20天」

她写完这行字,退后一步,没有像平时那样端详自己的字迹是否工整。她只是站着,手里握着红笔,手垂在身侧。笔尖朝下,红墨水滴了一滴在地上,她低头看了看,用鞋底踩住了,蹭了一下。她是故意的。那滴墨不该滴在地上,但她没有擦掉它。

“这二十天,没有周末,没有假期,没有请假。”她的声音不大,但活动室里每一个角落都能听到,“每天上午一场,下午讲题复盘,晚上自由训练。强度很大,我知道。但省选那天,强度只会更大。”

没有人说话。

周远舟的手指在膝盖上轻轻地敲着,发出很低的、几乎听不到的嗒嗒声——不是打节拍,是在脑子里跑代码。常陆茉子把保温杯里的水倒掉,换了一杯新的热水,热气从杯口升起来,模糊了她眼镜片上的一小块区域。她摘下眼镜,用衣角擦了擦,重新戴上。鞍马流没有戴耳机。他今天把耳机放在桌上,黑色的,静静地躺在键盘旁边。他没有看任何人。

丛雨坐在我旁边。

她的手放在膝盖上,两只手叠在一起,手指交叉,攥得紧紧的。指节发白。她在紧张。

“丛雨。”我说。

“嗯。”

“你攥太紧了。”

她低头看了看自己的手,像是不认识它们。然后她松开手指,血液回流,指节从白色变成粉色,从粉色变成红色。她把手掌翻了翻,看了看自己的掌纹。

“方铨铎。”

“嗯。”

“二十天,我能进步多少?”

“不知道。但你会比现在强。”

“你怎么知道?”

“因为你每天都在。”

她看了我一眼。那一眼很短,但里面有一种东西——不是感激,不是依赖,是一种“我会证明你是对的”的决心。然后她把手放回膝盖上,这次没有攥紧。

2月1日,第一轮Day1。

八点整,刘彦博老师把题目发到了群里。三道题,压缩包,密码是NOIP2024。密码的末位数字不是4是5。丛雨输错了三次——不是她打字慢,是她太紧张,手指在键盘上滑了一下,碰到了旁边的键。第四次,密码正确。压缩包解开的那个瞬间,屏幕上的三个PDF文件排列得整整齐齐。

第一题,数论。求1到n中与n互质的数的k次幂之和,模一个大质数。

我看着题面,脑子里第一个想法是欧拉函数。但欧拉函数只能求出有多少个互质的数,不能求和。需要用到狄利克雷卷积,需要用到积性函数的性质,需要用到整除分块。这不是一道省选难度第一题该有的难度。这是Day2第三题的难度。

周远舟举手。三司绫濑走到他旁边,弯下腰,听他低声说了句什么。她的表情没有变化,但她站直之后,在群里的公告栏里加了一行字:「这套题是去年NOI Day2的题。刘老师说,让你们体验一下最高难度。」

活动室里安静了一秒。然后键盘声响起来了。不是那种噼里啪啦的响,是那种犹豫的、时断时续的、像一个人在黑暗中摸索着走路的响。每一个人都在黑暗中。有的人走得快一点,有的人走得慢一点,但没有一个人停下来。

我在这道题上花了两个小时。写完最后一行代码的时候,时间还剩五十八分钟。第二题和第三题我只写了暴力,各拿了三十分左右。总分一百六十。

丛雨考了九十分。她把第一题的暴力写出来了,四十分。第二题骗了二十分,第三题拿了三十分。她看着自己的分数,把成绩单翻了过去,背面朝上。

“九十分。”她说。

“比零分好。”我说。

“你这是在安慰我吗?”

“不是。”

“那你是什么意思?”

“我的意思是——你还有十九轮。每一轮都可以比上一轮多拿十分。”

她看着我,眨了眨眼。睫毛上有一点什么东西——不是眼泪,是盯屏幕太久眼睛干涩分泌的泪液,在睫毛尖上凝成很小很小的水珠。

“十九轮,每轮多十分,那就是一百九十分。加上现在的九十分,一共二百八十分。”

“你的数学是体育老师教的?”

“我的体育是数学老师教的。”她笑了一下,用手指把睫毛上的水珠蹭掉了,“二百八十分,够不够进省队?”

“够。”

“你骗人。”

“嗯。”

“但你骗我的时候,我比较开心。”

沉鱼旋考了一百九。她的第二题写出了一个完整的杜教筛,四十分的部分分全拿了。第三题她用了莫比乌斯反演,推了整整两页草稿纸,最后代码只写了六十行。六十行代码,拿了一百分。这是她的风格——在纸上花很长时间,把思路完全理顺,然后写出来的代码短得像诗。

她的草稿纸叠得很整齐,放在桌角,用一个方方正正的压纸石压着。压纸石是一块透明的亚克力方块,里面嵌着一朵干花。是樱花,粉色的,花瓣的边缘已经褪成了白色。

她没有看我。一次都没有。

但我看到她用压纸石把草稿纸的四个角都压平了。以前她只压左上角和右下角,两个就够了。今天压了四个。不是因为风大。这间屋子没有风。

第一轮Day2。

三道题,和Day1难度相当。第一题是图论,第二题是字符串,第三题是数据结构。

Day2的发挥比Day1好一些。第一题用了一个比较巧妙的转化,把问题变成了二分图匹配,拿了一百分。第二题写了后缀自动机,过了部分数据,六十分。第三题写了LCT,调了四十分钟没调出来,最后只拿了二十分的暴力分。

总分一百八。两天合计三百四十分。

这个分数在去年的省选里,大概排在二十名左右。不够进省队。差得还远。

丛雨两天合计二百二十分。她Day2的第一题拿了一百分。一百分。她盯着那个绿色的数字看了很久,用手机拍了照,放进了相册里。她的手机相册里没有自拍,没有风景,全是代码的截图。绿色的Accepted,她从第一张开始保留,到现在已经攒了一百多张。

“方铨铎,你看。”她把手机举到我面前。

屏幕上是一行绿色的Accepted。题目编号P4779,单源最短路径。

“这道题你什么时候做的?”

“去年。刚学完最短路的时候。”

“你保留到现在?”

“对。”她把手机收回去,划了几下屏幕,又举过来。另一张绿色的Accepted。P3379,最近公共祖先。又一张。P3865,ST表。

她一张一张地划给我看。一百多张照片,一百多次绿色的Accepted。从最简单的A+B Problem,到最近做的这道数论题。每一张都是她走过的路。

“你留着这些东西做什么?”我问。

“提醒自己——我不是零分。”

沉鱼旋两天合计三百一十分。Day2的第三题她用了一个非常冷门的数据结构——块状链表。我听过这个名字,但从没见过有人在竞赛里用。她用了,还过了。

常陆茉子看完她的代码,沉默了很久。然后她合上了自己的电脑。“你今天不用复盘了,”她对沉鱼旋说,“你的做法比我优。”

沉鱼旋没有回答。她低下头,把草稿纸叠好。四个角。

第一轮结束的那个晚上,三司绫濑把所有人的成绩汇总,贴在了白板上。

鞍马流:450

常陆茉子:410

方铨铎:340

沉鱼旋:310

周远舟:290

丛雨:220

“这是第一轮。”三司绫濑在数字下面画了一条横线,“还有九轮。每一轮,你们都要比这一轮高。”

“如果没高呢?”周远舟问。

“那就说明你在原地踏步。原地踏步,就是退步。”

没有人反驳。

白板上的数字安静地待在那里,像一面镜子。每个人都在这面镜子里看到了自己,也看到了自己与上面那行数字之间的差距。那条横线是及格线,还是省队线,还是梦想与现实的交界线,每个人心里都有不同的答案。

丛雨把自己的名字和分数看了很久。二百二十。她用手指在空气中描了一遍这两个数字,手指停在空中,没有放下。她的手指在空气中划过的地方,留下了一道看不见的痕迹。不是写给自己看的,是写给那道看不见的墙看的。

第二轮。第三轮。第四轮。

没有休息。没有周末。每一天都是Day1,第二天是Day2,第三天又是Day1,第四天又是Day2。日子像被压扁了一样,只剩下上午的考试、下午的讲题、晚上的自由训练。吃饭变成了一个需要在十五分钟内完成的任务。上厕所变成了一个需要在试题发放后的间隙里解决的问题。睡觉变成了一天里唯一一段不用面对题目的时间,但梦里都是WA。

第二轮,我总分三百六。第三轮,三百九。第四轮,三百八。

丛雨第二轮二百六,第三轮三百,第四轮三百一。

周远舟第二轮三百二,第三轮三百四,第四轮三百三。他的分数在三百到三百五之间来回波动,像被什么东西卡住了,上不去,也下不来。

常陆茉子的分数稳稳地停在四百到四百三之间。不高不低,不好不坏。她做题的风格和她这个人一样——不出错,也不出彩。但省选不需要出彩,只需要比旁边的人多拿十分。

鞍马流的分数在四百六到四百九之间。他偶尔会拿满分,但不是稳定的那种满分。有时候第一题失误了,有时候第三题没调出来。他做题的时候会摘掉耳机,把它放在桌上,然后敲键盘。敲到一半会忽然停下来,盯着屏幕,手指悬在键盘上方,像一个人站在十字路口,不知道该往哪边走。

沉鱼旋的分数在三百五到四百之间。她的发挥不稳定。状态好的时候,她能用别人想不到的做法拿满分;状态不好的时候,简单的题也会出错。她的情绪和分数之间有一条看不见的线,线的另一端系在什么地方,我不知道。

第六轮的时候,发生了一件事。

丛雨在Day1的第三题上卡住了,卡了整整两个小时。她没有交暴力,没有骗分,一个字都没写。从八点到十二点,四个小时,她的屏幕上只有题目描述和一行注释——她的名字和日期。

考完之后她趴在桌上,没有动。过了很久,她抬起头,眼神很空,像一台内存被清空了的电脑。

“方铨铎。”

“嗯。”

“我一个字都没写出来。”

“我知道。”

“你不骂我吗?”

“骂你什么?”

“骂我浪费时间。骂我不懂得取舍。”

我看着她。她的眼睛下面有很深的黑眼圈,二十天没有休息日,她的身体已经到极限了。

“你不需要被骂。”我说,“你需要睡觉。”

她摇了摇头。第二天,Day2,她考了三百分。Day1的第三题一个字没写,Day2的三百分。总分三百分整。她把成绩单拿在手里,翻来覆去看了好几遍,然后抬起头对我说:“我今天骗分了。第三题我写了一个贪心,本来以为只能拿二十分,结果卡着时限过了。”

她在说这话的时候笑了。不是那种被逼出来的笑,是那种“我终于学会了一点技巧”的笑。但她的眼睛下面,黑眼圈更深了。

第七轮。第八轮。第九轮。

所有人的分数都在涨。不是突然涨的那种,是每天涨一点,像植物生长,肉眼看不到,但一周之后回头看,已经不一样了。

第七轮我考了四百一,第八轮四百三,第九轮四百四。丛雨第七轮三百四,第八轮三百六,第九轮三百八。周远舟在第九轮考了四百一——他第一次突破四百分大关。成绩出来的那一刻,他把双手举过头顶,像足球运动员进球后的庆祝姿势。没有人笑他。三司绫濑看着他微微笑了一下,那笑容的长度大概等于一杯奶茶从吸管口到口中的距离。

常陆茉子在第八轮考了四百五,第九轮四百四。她对自己的成绩不满意,但她没有表现出来。她只是在讲题的时候多问了几个问题,每一个问题都问在关键的地方。

鞍马流在第九轮考了四百九。差十分满分。那道扣了十分的题是一道简单的模拟,他在读题的时候漏掉了一个条件。他把题面打印出来,用红笔把那个条件圈了起来,贴在电脑屏幕的边框上。“不会再犯了。”他说。他说这句话的时候没有看任何人,是在对自己说。

沉鱼旋的分数在第九轮跳到了四百三。她第四题用了一个非常精妙的构造,不是常规算法,是一个她自己想出来的、专门针对这道题的特殊解法。代码只有五十行,每一行都干净得像刚洗过的玻璃。三司绫濑在讲题的时候让她上去讲。她站在白板前,讲了十五分钟。声音不大,但每一句话都是对的。没有一句废话。

她讲完之后回到座位,从我旁边走过。很近。近到我能闻到她头发上的味道,不是洗发水的味道,是冬天空气被体温加热后的味道——干燥的、淡淡的、像雪的下面埋着什么东西正在慢慢腐烂又在慢慢生长。

第十轮,最后两天。

2月19日,Day1。2月20日,Day2。

活动室里的气氛和第一天完全不同了。第一天的时候,大家紧张、焦虑、不确定。最后这两天,大家安静了。不是那种压抑的安静,是那种“我把该做的事情都做了,剩下的就是把它做出来”的安静。

周远舟没有在群里发消息。常陆茉子没有换新的书签,她的保温杯里没有泡新的茶,续的还是旧水。鞍马流戴上了耳机,但没有放音乐,耳罩里是空的,只是用来隔音。

丛雨在我旁边,把椅子挪到了离我最近的位置。二十天前,她的椅子和我之间隔着二十厘米。现在,隔着零厘米。我们的椅子靠在一起,扶手碰着扶手,金属碰金属,发出很轻的、像心跳一样的脉冲声,频率和键盘声刚好错开。

“方铨铎。”

“嗯。”

“这二十天,你一直在我旁边。”

“嗯。”

“谢谢你。”

她说这三个字的时候没有看我。她在看自己的屏幕,屏幕上是Day1第一题的题目描述。她的手指放在键盘上,没有动。但她说了“谢谢你”。不是写在代码注释里的,是说出来。

沉鱼旋坐在角落的位置,还是那个靠窗的角落。从第一天到最后一天,她始终没有搬过位置。七米。二十天,她没有缩短过这段距离,也没有拉长过。

但今天,她把围巾搭在了椅背上,深灰色的那条,中间有一段被她攥得皱皱的。她把围巾展开,铺平,用手指把皱纹一道一道地抚平。很慢。像在处理一段需要被温柔对待的代码——每一行都仔细看,每一个bug都小心地修复,不急,不躁,不期待奇迹。

2月20日下午,最后一场模拟赛结束。

三司绫濑站在白板前,把二十天的成绩全部汇总。

六十道题。十轮省选。二十个不眠的日夜。

鞍马流:平均分462,最高分498

常陆茉子:平均分428,最高分465

方铨铎:平均分398,最高分456

沉鱼旋:平均分385,最高分442

周远舟:平均分367,最高分418

丛雨:平均分336,最高分392

“这是你们二十天的成绩。”三司绫濑放下马克笔,“现在,距离真正的省选,还有——”

她在白板上写下了一个新的数字。

「省选倒计时:2天」

不是二十天。不是十天。是两天。

从二十天到两天,好像只是一瞬间的事。那些没完没了的模拟赛、那些讲不完的题、那些深夜里还在亮着的屏幕,它们好像被压缩成了一个很小的点,小到可以用拇指盖住。但当你把手拿开,那个点还在。它不会消失。

三司绫濑把马克笔放回槽里,转过身来看着所有人。她的目光一个一个地扫过去——在鞍马流身上停了一秒,在常陆茉子身上停了一秒,在周远舟身上停了一秒,在丛雨身上停了一秒,在沉鱼旋身上停了一秒,在我身上停了一秒。每个人,一秒。二十天,六十道题,六百个百分点的跨度,在这一秒钟里被全部折叠。

“省选见。”她说。

这三个字没有用力。但每一个字都带着二十天的重量。

丛雨站起来,把椅子推进桌下。二十厘米的距离在她的椅子腿和桌子腿之间消失了。她转过身,面对我。

“方铨铎,谢谢你。”

“你说过了。”

“我知道。但我还要再说一遍。因为二十天很长,你一直在。”

她的眼睛很亮。不是眼泪,是这二十天里被屏幕光照久了,眼睛里攒了一些光。那些光还没有散。

沉鱼旋从角落走过来。她走得很慢,每一步都不急。七米。六米。五米。四米。三米。两米。一米。她在我面前站定。

“二十天。”她说。

“嗯。”

“你进步了。”

“你也进步了。”

她看着我,没有说话。

然后她伸出手,递给我一样东西。是一张纸。不是草稿纸,是A4打印纸,折成了四折。我打开,上面写着三行字:

方铨铎:Day1第三题,你的做法是O(n log n),我的做法是O(n)。差一个log。省选的时候,我不会让着你。

下面还有一行很小的字,不仔细看几乎看不到。

但我会比你快的那一秒,用来回头看你有没有跟上。

她把这张纸叠好,放回口袋里,转身走了。她的围巾在椅背上挂着,她没有拿。她走了之后我才发现,她把围巾留在这里了。

丛雨站在我旁边,看着沉鱼旋的背影消失在门口。

“她的围巾没拿。”丛雨说。

“嗯。”

“你不追上去还给她?”

“她会回来拿的。”

“你怎么知道?”

“因为那是她最喜欢的围巾。”

丛雨看着我。她的眼睛里有很多问题,但她一个都没有问。她只是把椅子拉回原来的位置,坐了下来,打开电脑。

二十天结束了。

省选,还有两天。

-

十四

省选前夜。

我失眠了。

不是那种翻来覆去睡不着的失眠,是那种身体已经累到了极点,脑子却像一台关不掉的电脑,每一个进程都在后台运行着,CPU占用率百分之百,风扇嗡嗡地转,温度降不下来。

二十天全真模拟的疲惫像潮水一样淹没了每一块骨头、每一寸肌肉。六道题、六百分、两天——这些数字在脑子里反复播放。第一天第一题如果卡住了怎么办?第二题如果读错题了怎么办?第三天——没有第三天。省选只有两天。两天决定你是进省队还是回家。两天决定你这半年所有的努力是变成一张证书还是变成一句“明年再来”。

我盯着天花板。

天花板是白色的,有一条很细的裂缝从灯座延伸到墙角。我以前从来没有注意过这条裂缝。它一直都在,只是我从来没有躺着看它。

我拿起手机。凌晨一点四十七分。

屏幕的光在黑暗的房间里显得格外刺眼,瞳孔猛地收缩了一下——不只是光学反应,是身体的某种本能防御:从现在开始不要再接受任何强刺激了,保持稳定,保持低速,保持低功耗。

我打开了和沉鱼旋的聊天界面。

最后一条消息是三天前,她发的一个“好”。

只是一个字。但那个字不是单独存在的——它出现在屏幕上,上面是五天前我发的一个“晚安”,上面是我调她代码那天的截图、模拟赛成绩的交换、深夜讨论某道题最优解的你来我往,最上面是那个系统自动生成的“你已添加了沉鱼旋,现在可以开始聊天了”。

现在可以开始聊天了。

但我不知道该怎么开始。也不知道自己想不想开始。

我的手指在屏幕上划来划去,把聊天记录从最底下翻到最上面。那些文字、那些截图、那些深夜里交换的代码片段,它们像一面墙,把我和她隔开。不——它们是一座桥。我站在这头,她站在那头。桥还在,但我不知道该不该走过去。

就在我盯着那行“现在可以开始聊天了”发呆的时候,屏幕上方弹出了一条消息。

「在吗」

两个字。沉鱼旋发的。

发送时间:凌晨一点五十三分。

我的手指在键盘上停了一下。

「在」

发送。

对面显示“正在输入”,消失了,又出现,又消失了。

「睡不着」

三个字。没有标点。

「我也是」

我想了想,加了两个字:「在想什么」

这一次“正在输入”停留了很久。久到我以为她不会发了。

「在想明天的事。」

她的回复速度慢了下来,每一个字都像经过了一个漫长的过程才出现在屏幕上。

「方铨铎。」

「嗯。」

「你紧张吗」

我没有犹豫。

「紧张」

这一次她秒回了。

「我也紧张。」

然后她发了一个语音通话的邀请。

我看着屏幕上那个绿色的电话图标,心跳忽然加快了。不是紧张——是那种在深夜的黑暗里,忽然有人敲门、你不知道门外是谁、但你还是想去开门的感觉。

我按下了接听。

“喂。”

她的声音从耳机里传出来。很轻,比平时轻。像是怕吵醒什么人——但她的室友早就睡了,她大概缩在被窝里,手机贴着耳朵,呼吸声被麦克风放大,沙沙的,像秋天的落叶被风吹过路面。

“喂。”我也说。

然后两个人都没有说话。沉默中只有彼此的呼吸声。她的呼吸很浅,不是那种紧张的浅,是那种“我在听你呼吸”的浅——人的呼吸只有在专注地听另一个人的呼吸时,才会变得这么浅。

“你在看天花板吗?”她忽然问。

“你怎么知道?”

“因为我也在看。”

我笑了一下。没有声音的笑,但她大概能感觉到,因为我的呼吸节奏变了。

“你家的天花板上有什么?”她问。

“一条裂缝。从灯座到墙角。”

“我家的天花板上什么都没有。”

“那你盯着看什么?”

“黑暗。”

沉默了几秒。

“方铨铎。”

“嗯。”

“你以前失眠的时候,会做什么?”

我想了想。

“刷题。”

“刷题不会更睡不着吗?”

“不会。刷着刷着就困了。”

“那你今天怎么不刷?”

“今天不想刷。”

“为什么?”

“因为——脑子装不下了。”

她轻轻笑了一声。很短,但很真。不是那种礼貌的笑,也不是那种被逗乐的笑。是一种“我懂”的笑。

“我也是。”她说,“脑子装不下了。再往里面塞东西,就会从耳朵里漏出来。”

“你的脑子从哪边耳朵漏?”

“左边。你呢?”

“右边。”

“那我们可以一人睡一边,漏出来的接住,互相补给。”

我说不出话来。

不是因为这句话有多好笑或者多感人。是因为她在用一种最轻描淡写的方式,告诉我——你不需要一个人扛。漏了也没关系。我接着你。

“沉鱼旋。”

“嗯。”

“你为什么会睡不着?”

她沉默了很久。

“我在想,如果明天考不好怎么办。”

“不会的。”

“你怎么知道?”

“因为你准备了半年。二十天模拟。六十道题。每一道都做过了。”

“做过了不一定做对。”

“做对了不一定记住。”

“记住了不一定考到。”

“考到了不一定写得出来。”

她轻轻笑了。

“你把我后面想说的话全说了。”

“因为我也在想同样的事。”

沉默。只有呼吸声。

“方铨铎,”她的声音变小了,像在说一个秘密,“我今天下午去看了考场。”

“怎么样?”

“桌子有点晃。我用纸巾垫了一下。但可能明天还会晃。”

“你带纸巾了吗?”

“带了。一整包。”

“那够了。”

“我还带了一支备用笔。两B铅笔。橡皮。准考证复印了三份。身份证复印了两份。水杯是透明的,没有标签。巧克力是纯黑的,不会掉渣。”

“……你准备得真仔细。”

“我怕。”

她说这两个字的时候,声音抖了一下。不是那种因为寒冷或者疲惫的抖,是非常深的恐惧在喉咙里挤出来的抖。

“怕什么?”

“怕那道有向图的题。”

我的心猛地缩了一下。

那道有向图的题。

那道让我省选落败、让我从人大附中转到十一学校、让我从“我不想搞了”变成“我还想再试一次”的题。那道题像一道伤疤,我从来没有给别人看过。但她看到了。她一直在看。

“那道题不会再出现了。”我说。

“万一出现了呢?”

“那你就把它当成无向图做。”

“那不是错了吗?”

“错了也没关系。我会帮你检查。”

她沉默了很久。

“方铨铎。”

“嗯。”

“你这个人真的很讨厌。”

“为什么?”

“因为你总是说这种话。说完了之后,我就没那么怕了。”

窗外的月光从窗帘的缝隙里透进来,在天花板上画出一条很细很细的白线。

“沉鱼旋。”

“嗯。”

“你还记得你在教室里给我写的纸条吗?”

“哪一张?”

“就是那张——Day1第三题,你的做法比我优一个log,但你会回头看我有没有跟上。”

她沉默了几秒。

“记得。”

“你后来回头看了吗?”

“……看了。”

“看到什么了?”

沉默更久了。

“看到你还在。”

房间里很暗。窗帘没有拉严实,月光挤进来一条缝,落在我的枕头旁边,像一把很薄很薄的刀,切开黑暗,但不伤人。

“方铨铎。”

“嗯。”

“你困了吗?”

“有一点。”

“那你睡吧。”

“你不是也睡不着吗?”

“我听着你呼吸。你睡着了,我就能睡着了。”

“这是什么原理?”

“不知道。”她的声音变得更轻了,像一片羽毛落在棉花上,“大概是——你安全了,我就安全了。”

我没有回答。

不是不想回答。是因为某种东西堵在了喉咙里。不是泪,是一种比泪更浓、更重、更难命名的东西。

我闭上眼睛。

她的呼吸声在耳机里,很浅,很稳,像冬天的风经过一片结了冰的湖面。冰面下的水还在流,但你看不到,你只能听到风从冰面上滑过去的声音。

“方铨铎。”

“……嗯。”

“明天早上我给你打电话。当闹钟。”

“好。”

“你别自己定闹钟。万一手机没电了。”

“好。”

“你充电器插上了吗?”

我睁开眼睛,看了一眼床头柜。充电器插着,指示灯是绿色的。

“插上了。”

“好。”

沉默。

“沉鱼旋。”

“嗯。”

“晚安。”

她沉默了一秒。

“晚安。”

然后是更长的沉默。不是那种空白的沉默,是那种被填满了的沉默。她还在线,她的呼吸还在耳机里。

我闭上眼睛。

天花板上那条裂缝在月光里变得模糊了。我的意识在一些离散的片段里沉浮——丛雨的黄色发圈在日光灯下褪色的样子,沉鱼旋在网吧角落里盯着屏幕的侧脸。白板上的数字从20变成2,和那句“省选见”的尾音。三司绫濑把栗子剥开放在我手心里的温度。

我想握住一个东西,但我的手已经抬不起来了。那些片段像碎掉的星光一样缓缓落下来,落在我的眼皮上,很轻,比雪轻,比灰尘轻。

“方铨铎。”

她的声音很远很远。

“你睡着了吗?”

我没有回答。不是不想回答,是我已经分不清哪个是梦、哪个是真的了。

“晚安。”她的声音像一只手,轻轻拂过我的眼皮,把那些碎光拂走,留下沉沉的、暖暖的黑暗。“好梦。”

第二天早上,我是被手机震醒的。

屏幕上是沉鱼旋的来电。时间:六点三十分整。

我接起来。

“醒了吗?”她的声音很清醒,一点不像只睡了几个小时的人。

“嗯。”

“给你二十分钟洗漱。六点五十楼下集合。七点出发。”

“好。”

“方铨铎。”

“嗯。”

“今天,是我们两个人的省选。”

通话结束了。

我坐在床边,看着窗外的天空。天刚亮,东边的云被染成了很淡的橘红色。那种颜色和沉鱼旋昨天发圈的颜色很像,粉色的那头,褪了色的淡粉。

我穿上校服走出宿舍楼。早晨六点四十五,校园里很安静,空气冷得扎脸。

沉鱼旋站在楼下。穿着白色的羽绒服,深灰色围巾——她昨天留在活动室的那条。她把围巾取回来了,围得很高,遮住了半张脸,只露出眼睛和鼻梁。眼睛下面是淡青色的,不是眼影,是没睡好。

“你也没睡好。”我说。

“嗯。”她的声音从围巾后面传出来,闷闷的。

“你不是说我睡着了你就能睡着的吗?”

“我说的是大概。大概的意思是,不一定。”

她从口袋里拿出一个东西,递给我。

是一个暖手宝。粉色的,上面印着一只猫。

“考场冷。你手凉,写代码会慢。”

我接过来。暖手宝还热着,大概是她在宿舍里充好电带下来的。

“你呢?你用什么暖手?”

她把手从口袋里抽出来,举到我面前。

“你的暖手宝。”

她的手心里,是那个银色的U盘。

「行到」

金属的外壳被她攥了一整夜——不,从我来十一学校的那天起,她一直在攥着它。

“走了。”她把U盘放回口袋,转身往校门口走去。

我跟在她后面。

她的白色羽绒服在清晨的阳光里微微发亮。今天没有风,一丝都没有。空气是静止的。

省选第一天。没有风。云也不动。

-

十五

省选第一天。

早晨七点十分,大巴停在了考场门口。

不是十一学校,也不是人大附中,是北京市某所重点中学的北校区。校门口已经站满了人,穿不同颜色校服的学生从各个方向汇聚过来,像千万条河流汇入同一片海。深蓝色的、浅蓝色的、白色的、灰色的,那些校服的颜色在北京冬天的晨光里显得很暗沉。没有人大声说话。不是安静,是那种暴风雨来临前的静止。所有人都在做自己的事——有人在翻最后一遍笔记,有人在闭目养神,有人在调试键盘手感,有人盯着不远处的教学楼发呆。几百个人的紧张被压缩在一块很小的空间里,密度太高,凝成了液体——你看不到它,但你走在其中,能感觉到阻力。

丛雨坐在我旁边靠窗的位置。她一直在转手里的笔,黑色水笔在她指间翻来覆去,转得快的时候像风扇的叶片,慢的时候像老式钟表的秒针。她已经转了二十分钟。不是紧张,是紧张到了极点之后的某种平静——就像一根被拉到极限的弦,再拉就会断,于是拉弦的人松手了,弦在空气中振动,发不出声音,只有肉眼勉强能看到的虚影。

“丛雨。”我低声叫她。

她停下转笔,转过头看我。“嗯。”

“别转了。”

她低头看了看手里的笔,像是不认识它。然后把笔放进了笔袋里,拉上拉链。动作很快,不是因为它不重要,是因为再慢一点她的决心就会软化。

“方铨铎。”她的声音有一点哑,“如果我今天第一题就看不懂怎么办?”

“你不会看不懂的。”

“万一呢?”

“万一你看不懂,”我从口袋里拿出一个东西,放在她手心里,“你就摸这个。”

一颗糖。橘子味的,硬糖,和她平时在口袋里塞的那种一模一样。她低头看着那颗糖,把它攥在手心里,指节泛白。“这招是跟谁学的?”

“跟你学的。你不是说过,紧张的时候就吃糖?”

她笑了一下。那笑容很短,像一颗流星划过冬天的天空——来不及许愿,它就不见了。

沉鱼旋坐在前面一排,深灰色的围巾围得很高,遮住了半张脸。从我的角度看过去,只能看到她的侧脸和一小片额头。额头被围巾的边沿遮了一半,露出来的那一半很白,白得几乎透明。她的眼睛闭着。不是睡着,是在脑子里过某种东西——图的存储方式、动态规划的转移方程、树链剖分的代码模板。她的嘴唇微微动着,在默念。我没有叫她。她在做一件很重要的事——把自己调成省选模式。

八点整,入场。

考场的楼是一栋灰白色的五层建筑,所有的窗户都关着。考生们排成一列长队,在工作人员的引导下依次通过安检。金属探测器扫过身体的每个部位。水杯要打开喝一口。准考证要露在外面。一切按照标准流程进行。

我走进考场的时候,教室里已经有十几个人了。桌子排成五列六行,每一张桌上贴着一个考号。我找到自己的位置——第三列第四排。桌面上贴着一张白色标签,上面印着我的名字和准考证号。

方铨铎。这三个字被打印在一张两指宽的标签上。旁边是准考证号、座位号、考场号。这些数字之前和之后会发生什么,没有人知道。

我坐下来,把文具摆在桌上。透明笔袋,黑色水笔两支,2B铅笔一支,橡皮一块,准考证一张。透明水杯一个——丛雨今天早上塞给我的,杯壁用记号笔写了一个歪歪扭扭的“Ciallo”。我把那个词看了几秒钟,把它放在桌角,杯盖拧松半圈。然后把手伸进口袋里。暖手宝——沉鱼旋早上给我的那个,粉色的,上面印着一只猫,已经不怎么热了,但金属探测的时候没有被拦下来。我把暖手宝攥在手心里,让最后一点余温从掌心渗进去。

八点四十五分。监考老师开始宣读考场规则。声音很大,在大教室里来回弹了好几次,像一颗被扔进空房间的石子。

八点五十八分。试卷开始下发。从第一列第一排往后传,每一双手接触到试卷的时候都很轻,像在触摸一件易碎的瓷器。纸张翻动的声音像秋天的叶子被风吹起来,再落下去。

我把试卷翻到第一面。

第一题。

八点五十九分。我把题面读完了。

九点整。我开始读第二遍。

第一题是一道模拟题。题目描述了一个图书管理系统的借阅流程,有借书、还书、查询三种操作。数据范围n≤200000。如果用数组模拟,每次操作都遍历一遍,时间复杂度O(n²),铁定超时。需要用一个数据结构来维护——平衡树、线段树、树状数组都可以。线段树的常数最小,我选线段树。

我在草稿纸上画了线段树的结构。建树O(n),查询O(log n),修改O(log n)。总复杂度O(n log n),能过。八点十五分,我开始写代码。手指放在键盘上的那一刻,我忽然想起一件事——省选前最后一天,沉鱼旋打电话跟我说:“今天是我们两个人的省选。”这句话在我脑子里转了一圈,没有停留。不是因为它不重要,是因为它太重要了,重要到不能在这个时候想。我把注意力收回来,放在屏幕上。

键盘声。整个考场里都是键盘声。不同的人,不同的节奏,不同的力度,像一首没有旋律的交响乐。

九点四十分,我把第一题写完了。编译,通过。测试样例,第一个过了,第二个过了,第三个——WA。红色的字母在屏幕上亮起来的时候,我的手指停了一下。不是慌乱,是冷静——一种在持续的高压下训练出来的条件反射:找到错误,修复它,继续。我一行一行地检查代码。线段树的建树是对的,查询是对的,修改是对的。问题出在数据输入上——题目给出的操作序列中,有一种操作是“将区间[l,r]内的所有元素加上v”。我在代码里写成了“加上v再取模”。实际上不需要取模。我删掉了那个取模操作,重新编译,测试。第三个样例过了。第四、第五、第六——全部通过。提交。绿色的Accepted。

九点四十八分。

我靠在椅背上。九点四十八分,第一题AC。比全真模拟的时候慢了将近十分钟。因为这是一场真实的比赛,不能重来,不能“再试一次”。每个选择都是不可逆的。我做了正确的选择。

第二题。

题面比第一题长了很多。大概两页A4纸,描述了一个复杂的任务调度系统,有依赖关系、有优先级、有时间窗口。第一遍读下来,我的脑子里只有一个模糊的轮廓。读第二遍——贪心。读第三遍——不是纯粹的贪心,需要贪心加拓扑排序。读第四遍——需要拓扑排序,需要在拓扑排序的过程中动态维护一个优先队列,每次从当前可执行的任务中选优先级最高的那个。

我花了四十分钟把思路理顺,花了二十分钟写代码。写完的时候手指有一点僵——活动室里的键盘用惯了,换了考场上的键盘,键程和回弹都不太一样,打着打着会感觉手指找不到归属感。编译,通过。测试样例,第一个过了,第二个过了,第三个——WA。我盯着那组WA的数据看了一会儿。

任务是依赖关系构成了一张DAG。我的拓扑排序从入度为0的节点开始,每次把当前节点的后继节点的入度减1。这个逻辑是对的。但题目有一个额外的约束——同一个任务可以被多个前置任务依赖,只有当所有前置任务都完成后,该任务才能进入可执行队列。我的代码用了入度计数,入度减到0的时候才入队,这个逻辑也是对的。

问题出在优先级的比较上。任务的优先级是一个整数,范围1到10^9。但题目规定,如果两个任务的优先级相同,先执行编号小的那个。我的优先队列默认是大根堆。如果优先级相同,它不会自动比较编号。我需要自定义比较函数,让优先级相同时编号小的排在前面。改了一行。重新编译。测试。第三个样例过了。第四、第五、第六——全部通过。提交。绿色的Accepted。

十点四十五分。

两百分到手。我喝了一口水。杯壁上的“Ciallo”被水汽糊了一点,歪歪扭扭的。我拧紧杯盖,把水杯放回桌角。粉色的暖手宝已经不热了,我把它放在腿面上。还有一道题。两个小时十五分钟。

第三题。

题面翻到第三页的时候,我愣了一下。

“给定一个n个节点的树,每个节点有一个颜色。对于每条路径,定义它的权值为路径上不同颜色的数量。求所有路径的权值之和。”

树上所有路径的不同颜色数量之和。n≤200000,颜色种类≤n。读完题面之后,我的第一个想法是点分治。点分治是处理树上路径问题的标准工具,复杂度O(n log n),能过。但颜色数量的问题怎么处理?如果一条路径上有多个相同颜色的节点,只能算一次。这需要去重。在点分治的过程中,对于每个重心,需要统计经过该重心的所有路径的不同颜色数量之和。如果直接统计,每条路径都要扫描一遍颜色,复杂度O(n²),铁定超时。

我的第二个想法是容斥。总路径数减去有重复颜色的路径数。但“有重复颜色”这个条件很难处理。因为一种颜色可以在一条路径上出现多次,但不是所有出现多次的路径都需要排除——只需要排除那些“至少有一种颜色出现了两次”的路径。

我在这道题上卡了很久。草稿纸翻了三四页,每一种思路都写到一半就写不下去了。时间一分一秒地过去,十一点、十一点半、十一点五十分。距离考试结束还有十分钟。我的手心全是汗,手指在键盘上悬着,不知道该怎么落下去。

最后我写了一个暴力。枚举所有路径,用set统计颜色数量。时间复杂度O(n² log n),当n=200000的时候,这个复杂度等于“不可能通过”。但暴力能拿部分分。数据点里有一定比例的n≤2000的小数据,大概能拿三十到五十分。我飞快地写完了暴力,编译,测试小样例,通过。提交。黄色的Pending。考试结束的铃声在最后一秒响起。我没有看到结果。屏幕被锁住了。

走出考场的时候,阳光很好。十二点的太阳照在脸上,有一种不太真实的暖意。丛雨站在教学楼门口的台阶上等我。她的马尾辫比早上出门的时候乱了很多,黄色的樱桃发圈在阳光下显得更淡了,几乎变成了白色。

“你第三题做出来了吗?”她问。

“暴力。三十分到五十分。”我说。“你呢?”

“暴力。四十分。”她笑了一下,“但我第一题和第二题都做出来了。”

“两百分?”

“两百分。”她点点头,马尾辫跟着晃了一下。“方铨铎,你前两题多少?”

“两百。”

“第三题如果拿四十分,就是二百四。”

“嗯。”

“够吗?”

“不够。”

她抿了抿嘴,没有继续问。

沉鱼旋从教学楼里走出来。深灰色的围巾围得很高,遮住了下半张脸。她的步伐很慢,每一步都很稳,不像考完试的人,像在散步。她从我身边走过,没有停。但在经过的那一瞬间,用只有我能听到的声音说了一句话:“第三题,我做出来了。”

她没有回头。她的白色羽绒服在阳光下亮得刺眼。

我站在台阶上,脑子里忽然闪过一个念头。第三题,我做的是暴力。沉鱼旋做出来了,常陆茉子大概也能做出来,鞍马流应该也没问题。他们都能做出来,为什么我做不出来?

我站在那里,手心冰凉。不是因为没有暖气,是因为某种从体内向外扩散的寒意,像有一根冰针从心脏出发,沿着血管一根一根地刺向四肢。

大巴上,大家都在讨论今天的题目。

“第一题你们用的什么数据结构?”周远舟从前排转过头来,声音很大。

“线段树。”我说。

“我也是。但我被卡常了,最后一个点TLE。”他懊恼地拍了一下大腿。“早知道就用树状数组了。”

常陆茉子声音不大,但周围瞬间安静了。“第一题我用的是树状数组。区间修改区间查询,差分树状数组,常数比线段树小很多。”

第二题,第三题。大家还在讨论。

“第三题那道树上颜色计数,你们用的什么方法?”沉鱼旋忽然开口了,声音从前面传过来,很平静。

“点分治+容斥。”常陆茉子说。

“我也是。”周远舟说,“点分治,然后用一个数组记录每种颜色在当前子树中是否出现过,用时间戳优化清空。”

“鞍马前辈呢?”丛雨问。

鞍马流坐在最后一排,闭着眼睛。他没有睁眼,但开口了。“点分治。用bitset优化。”

沉鱼旋没有问我。她大概知道我做的是暴力。

三司绫濑坐在最前面,一直在看手机,没有参与讨论。她大概是故意不参与的——因为她的第三题也只写了暴力。“暴力不丢人,”她在群里说了一句,“省选考场上,能拿的分就是好分。”

这条消息发在群里,但我总觉得她是说给我听的。

回到学校之后,我去了活动室。

开门的是丛雨。她手里拿着一袋栗子,纸袋的上面印着“糖炒栗子北京老字号”,袋口没有系,热气从袋子里冒出来,在冬天的冷空气里凝成白雾。“我买了栗子。趁热吃。”她剥了一颗,放在桌上。

我坐在沉鱼旋的位置上。靠窗最角落的那个位置。围巾不在椅背上,她带走了。

我拿起那颗栗子,放进嘴里,机械地嚼。感觉不到味道。“方铨铎,”丛雨坐在我对面,双手捧着纸袋,像是在暖手,“你今天第三题真的只写了暴力?”

“嗯。”

“你前面两题都做出来了。”

“前两题做出来了有什么用?第三题一百分,我只拿三十分。”

“三十分也是分。”

“不够。”我把栗子壳放在桌上,指尖沾了灰。“省队线去年是四百六。第一天我大概二百二到二百四,第二天就算拿满三百分,也才五百四。第二天的题目比第一天难,拿满不可能。所以第一天必须上二百八。”

丛雨沉默了。她把纸袋放在桌上,里面的栗子滚了几颗出来。

“方铨铎,你觉得自己哪里写错了?”

第三题。那道颜色的题。点分治、容斥、bitset——脑子里不停地过那些东西。不是暴力,不是三十几分。

“我没有做错。”我说。“我少做了一个条件。”

丛雨看着我。

“第一题,”我的声音有一点干,“线段树的区间修改,我写的是加上v再取模。但题目没有说要取模。我多写了一个取模。如果那个取模导致了错误——”

“会导致什么?”

“会导致所有涉及区间修改的测试点全部WA。第一题是强制在线,没有部分分。全对或者全错,一百分或者零分。”

活动室里安静了很久。栗子凉了,热气不再冒出,纸袋的边角被风吹得微微翘起。

丛雨站起来,绕到桌子这边,在我旁边坐下。她没有说话,只是坐在我旁边,和我一起看着窗外灰蒙蒙的天空。

晚上。我回到宿舍,躺在床上,盯着天花板。和省选前夜一样的姿势,一样的裂缝。

不一样的是,今天我已经考完了Day1。那道线段树的取模,像一个钉子,钉在我脑子里。从下午想到晚上,从晚上想到深夜。取模,取模,取模。一个不该出现的东西,一行多余的代码。

那行代码还在评测系统里。已经被判了。也许是满分,也许是零分。结果要等全部考完才会公布。你不知道自己做对了还是做错了,不知道那一行多余的取模会把你的分数变成一百分还是零分。等待比知道结果更煎熬,因为你的大脑会把所有的可能性都模拟一遍——最乐观的那个和最悲观的那个——然后在它们之间来回振荡,幅度越来越大,频率越来越快,直到整个系统崩溃。

凌晨一点。我拿起手机。

打开和沉鱼旋的聊天界面。最后一条消息是今天下午她发的「明天加油」,我回了一个「嗯」,然后就再也没有然后了。

我想发点什么。“我第一题可能写错了”——不行,她知道了会担心。“我睡不着”——她在睡觉,明天还要考试。“你在吗”——她在。

凌晨一点四十七分。屏幕上方弹出了一条消息。

「在吗」

两个字。沉鱼旋发的。和前天夜里一模一样的开头。

「在」

「睡不着?」

「嗯。你呢?」

「陪你。」

隔着屏幕能感觉到她的呼吸在字里行间长久的停顿。 “方铨铎。”

“嗯。”

“你在想什么?”

“第一题。线段树。我多写了一个取模。”

沉默了几秒。

“如果那个取模导致答案错了,第一题就是零分。”

沉默更久了。

“不会的。”她的声音很轻,却很笃定。

“你怎么知道?”

“因为你写的代码,我读过很多。你的取模不是乱写的。你一定想了什么才会加上去。”

我没有告诉她,那行取模是一个惯性动作。全真模拟的时候,很多题都需要取模,我形成了肌肉记忆。看到区间修改,手指自动打了“%MOD”。

“方铨铎。就算第一题零分,你还有第二天。”

“第二天三道题三百分。算上第二天的三百分,你还有机会。第二天考好了,还是能翻盘。”

第二天考好了,还是能翻盘。这行字从来没有人对我说过。 半小时。一小时。一个半小时。我们聊了很多。关于那些深夜一起调过的代码,关于她最喜欢的模数十万零七,关于“行到水穷处,坐看云起时”那两句诗。她的声音越来越远,越来越小,像一个人在慢慢走远,但她的手始终没有松开我。

“方铨铎。你困了吗?”

“……有一点。”

“那你睡吧。”

“你呢?”

“我听着你呼吸。你睡着了,我就能睡着了。”

“又是这个原理?”

“嗯。这个原理很好用。”

我笑了一下。很轻,大概是呼吸道振动了一下,连声音都不算。

“方铨铎。”

“嗯。”

“今天是我们两个人的省选。”她停了一下。“明天也是。”

电话没有挂。她的呼吸一直在耳机里。

我握着手机闭上眼睛。她说的话像一层很薄的棉被盖在我身上,不够厚,挡不住所有的冷,但你知道有人在给你盖被子。天快亮的时候我醒了一次。电话还在线,她的呼吸很均匀。她睡着了。

我没有挂断。

我把手机放在枕头旁边,继续睡。

省选第二天。

我是被闹钟叫醒的。不是沉鱼旋的电话——她说“明天我给你打电话当闹钟”,但她没有打。因为她也没有醒来。我们都在同一个时间睡着了。

早晨六点四十。我站在宿舍楼下,沉鱼旋从女生宿舍的方向走过来。白色的羽绒服,深灰色的围巾。眼睛下面有淡青色的阴影,比昨天更深。

“你也没睡好。”我说。

“嗯。”她的声音从围巾后面传出来,闷闷的。“你呢?”

“几乎没睡。”

“几点睡的?”

“不知道。大概四五点。”

她看着我的眼睛,看了大概两秒。“你的眼睛在说你很累。”她又看了两秒。“但你的眼睛也在说你不会放弃。”

然后她把手伸进口袋里,拿出那个暖手宝——粉色的,印着一只猫。

“昨天忘了充电,”她说,“不热了。”

她没有递给我。她把暖手宝攥在手心里。

“但是它在。”

今天的考场和昨天是同一个。座位是同一个。桌子是同一张。杯壁上的“Ciallo”还在,墨水的颜色比昨天淡了一些,大概是手汗蹭掉了。

我把水杯放在桌角。把暖手宝放在腿上,不热,但它的形状还在。沉鱼旋最后说的那句话——“今天是第二天,也是我们两个人的省选”——在一个我听不到、但她知道我能听到的时刻,说在了我的耳机里。

八点整。Day2的试卷发下来了。

第一题。是一道数论题。求1到n中与n互质的数的k次幂之和。数据范围n≤10^12,k≤10^5。我读了三遍题面。欧拉函数、积性函数、狄利克雷卷积、整除分块——那些概念在脑子里像一盏一盏的灯被点亮。

昨天我失眠了一整夜。连续高强度思考超过二十四小时。

我的手指在键盘上动得比平时慢。字母一个一个地从指间蹦出来,像一个人在雪地里走路,每一步都很慢,但每一步都在往前。

九点四十五分。第一题AC。

第二题。一道字符串题。给定一个字符串S,求它的所有子串中,有多少个子串包含至少两种不同的字符。读完题面的时候,我脑子里闪过一个念头——总子串数减去只含一种字符的子串数。总子串数是n(n+1)/2。只含一种字符的子串,可以用双指针扫描一遍,对每一段连续相同字符的长度len,累加len(len+1)/2。O(n),能过。

十点二十分。第二题AC。

两百分。加上昨天的分数——如果昨天第一题没有因为那行多余的取模变成零分的话——我的总分已经有了底气。

第三题。一道数据结构题。维护一个序列,支持区间加、区间乘、区间赋值、区间求和、区间求最大值、区间求历史最大值。

我盯着题面,手指放在键盘上。这是一道线段树进阶题。需要维护多个懒标记——加法标记、乘法标记、赋值标记、历史最大值标记。标记之间有优先级——赋值优先于乘法和加法,乘法优先于加法。昨天那道线段树的取模,让我几乎想要放弃线段树。一行多余的代码,一个不该存在的取模,也许已经毁掉了昨天的第一题。

但这道题必须用线段树。不需要取模。没有取模。没有需要取模的地方。我把昨天那一页翻了,开始写今天的线段树。

这一次,没有取模。

十一点四十五分。编译通过。测试样例全部通过。提交。Pending。绿色的Accepted。

三百分。Day2,三百分。

走出考场的时候,天是灰的,没有太阳。但我不觉得冷。

丛雨站在台阶上等我。她今天考完没有乱跑,就站在那里,两只手插在口袋里,马尾辫被风吹得歪向一边。

“方铨铎,你第三题做了吗?”

“做了。”

“多少分?”

“一百分。你呢?”

“八十分。”她笑了一下。“有一个点TLE了,常数太大。”

“八十分够了。”

“够什么?”

“够我们一起去省队。”

她看着我的眼睛,沉默了几秒。“你昨天不是说第一题可能写错了吗?”

“可能写错了,也可能没写错。”

“那你现在怎么想?”

我想了想。“尽人事,听天命。但昨天晚上我已经把人事尽完了。”

沉鱼旋从教学楼里走出来。深灰色的围巾,白色的羽绒服。她走到我面前,停下来。

“Day2多少?”她问。

“三百。”

“我也是。”

她看着我的眼睛。那双深棕色的眼睛里有一种光——不是兴奋,是那种“你看,我说过你会跟上”的光。

她从口袋里拿出那个粉色的暖手宝。这次是热的。

“今天充电了。”她把暖手宝递给我。我接过来,温度从掌心往手指蔓延。

“方铨铎。”

“嗯。”

“你昨晚几乎没睡。”

“嗯。”

“今天还是考了三百。”

“嗯。”

她低下头,看着自己脖子上的U盘。银色的金属在灰色的天光里微微发亮。

“行到水穷处,坐看云起时。”她念了这两句诗,声音很轻。“水穷处,你走过了。”

“云起的时候,就是这个下午。”

她没有把这个词说出来。她从围巾里抬起眼睛,看着我。那个眼神里没有诗,没有U盘,没有刻在金属上的字。那个眼神里只有我。

-

十六

省选后的日子,像是被人按下了暂停键。

不是真的停了。日子还在过,天还在亮,食堂还在营业,活动室的灯还在每天晚上亮到十点半。但所有的事情都变得不一样了。没有了每天早上的模拟赛,没有了下午的讲题复盘,没有了深夜还在调试的键盘声。生活突然空出了一大块,像一个被删除了大量代码的源文件——行数还在,但内容不在了,只剩下一片一片的空白。

成绩要等一周。

这一周里,周远舟把之前攒的所有动漫补完了。常陆茉子读完了一本砖头厚的《具体数学》,读完之后又从头开始读第二遍。三司绫濑每天喝三杯奶茶,比以前多了一杯,理由是“闲着也是闲着”。

丛雨开始学做饭。

“反正闲着也是闲着,”她在群里发了一张照片,是一盘炒糊了的蛋炒饭,米粒是黑的,鸡蛋是黑的,连葱花都是黑的,“方铨铎你什么时候来尝尝。”

我没回她。不是不想回,是我在等一个结果。那个结果像悬在头顶的一把剑,我不知道它什么时候落下来,不知道它落下来的时候是剑柄朝下还是剑刃朝下。

沉鱼旋这几天也变了。她不再像以前那样一个人坐在角落里,而是会偶尔走过来,站在我旁边,看我做题。不是看我做什么题,是看我这个人还在不在。有时候她什么都不说,站一会儿就走了。有时候她会留下一颗糖——橘子味的,硬糖,和我给丛雨的那种一模一样。

她给丛雨糖,也给我糖。但给丛雨的时候,她会放在桌上,转身就走。给我的时候,她会剥开糖纸,递到我面前,“张嘴。”她说。我就张嘴。她把糖塞进我嘴里,指尖碰到我的嘴唇。橘子味的甜,在舌尖上慢慢化开,像北京冬天里罕见的好天气——没有风,没有霾,只有阳光,干燥的、温暖的、不用穿羽绒服也能在户外站很久的那种阳光。

第五天。

下午,社团群里忽然炸了。

周远舟发了一条消息,全是大写的字母,隔着屏幕都能听到他的声音:「成绩出了!!!!!」

紧接着是丛雨的消息:「哪里哪里哪里哪里」

周远舟:「官网。省选成绩查询。」

然后是一长串没有人说话、没有人发消息的沉默。

我把手机放在桌上,打开了电脑。浏览器输入省选成绩查询的网址,按回车。服务器卡住了。刷新,正在加载,刷新,正在加载,刷新。第五次的时候,页面出来了。白色的背景,黑色的字。

登录:方铨铎 准考证号:BJ20240042

成绩查询。

我的鼠标停在那个按钮上。

沉鱼旋站在我旁边,不知道什么时候过来的。她的手搭在椅背上,手指离我的肩膀大概五厘米,没有碰到,但我能感觉到她手指上的温度。

“点吧。”她说。

我点了。

页面刷新的那一刻,我闭上了眼睛。

不是不敢看,是想让这一刻再长一点。在不知道结果的时候,一切皆有可能。满分或零分,省队或落选,这一年的所有努力——那道有向图的四十分、人大附中机房里的最后一次回车、十一学校活动室里的无数个深夜——它们都还在空中,没有落地,没有摔碎。

“方铨铎。”沉鱼旋的声音有一点抖。

我睁开眼睛。

屏幕上显示着一个数字。不是分数,是排名。排名后面跟着一个冒号,冒号后面跟着一个数字。那个数字不大,比我想象的小很多。小到我以为自己看错了。我揉了揉眼睛,又看了一遍。

第一名。

总分:五百四十六分。

Day1:二百四十六分。Day2:三百分。

Day1的第一题没有挂。那行多余的取模没有导致错误——不是因为它写对了,是因为题目的数据范围保证了所有中间结果都不会超过模数,取模和不取模的结果是一样的。编译器执行了那行多余的代码,但它什么也没改变。它只是在那里,像一个人站在路边,什么都不做,但你知道他来过。

Day1的第三题,暴力拿了四十六分。不是三十分,是四十六分。多出来的十六分来自那些n≤5000的数据点,我的暴力在那些点上跑进了时限。

总分五百四十六。全省第一名。

我的手从键盘上滑下来,放在膝盖上。手指在抖,不是那种因为寒冷或者疲惫的抖,是一种控制不住的、从骨头缝里往外涌的颤。

沉鱼旋的手从椅背上移过来,放在我的肩膀上。这次碰到了。

“你是第一名。”她说。她的声音很轻,像在确认一件她自己也不太敢相信的事情。

“嗯。”

“全省第一。”

“嗯。”

“你做到了。”

我没有说话。因为有什么东西堵在喉咙里,不是泪水,是比泪水更浓稠的东西——那些没说出口的“我可以”和“我不行了”,那些在深夜的机房里对自己说过的“再试一次”和“算了”,它们在等待出口,等待被听见、被承认、被放下。

三丛雨从门口冲进来,马尾辫飞在空中,黄色的发圈在日光灯下微微发亮,她跑到我面前,双手撑着桌沿,大口大口地喘气,眼睛亮得像两颗刚从水里捞出来的星星。

“方铨铎——第一名——你是第一名——”她的声音很大,大到大半个活动室都能听到。

“我知道。”我说。

“你知道?!你怎么知道的?!”

“我查了。”

“你查了为什么不告诉我!”

“我还没来得及告诉任何人。”

她瞪了我一眼,然后笑了。那笑容从她的嘴角开始,蔓延到整个脸颊,蔓延到眼睛,蔓延到耳朵尖。她的耳朵红了,很红,比平时任何一次都红。

“我就知道。”她说,“我就知道你可以。”

她的手从桌沿抬起来,朝我的肩膀伸过来——不是拍,不是戳,是握。她握住我的肩膀,手指收紧,指甲隔着校服嵌进我的皮肤。有一点疼,但我没有躲。

常陆茉子站在门口,手里拿着保温杯,杯盖开着,茉莉花茶的香气从杯口飘出来。她的嘴角微微上扬,那是一个很克制的弧度,不知道是因为高兴还是因为别的什么。三司绫濑从她身后走出来,手里端着奶茶——今天喝的是乌龙奶茶。“第一名,”她说,“请客。”

“请什么?”

“奶茶。全社团一人一杯。”

“……好。”

鞍马流摘下耳机,站起来,走到我面前。他看着我,大概有三秒钟。

“你超过我了。”他说。

“……嗯?”

“Day2,你三百分。我二百九。”

“你多少分?”

“总分五百三。第二。”

全省第二。他被我超过了。他的表情没有变化,嘴角还是平的,眼睛还是那个温度。但他伸出了手。我握住了。他的手很热,指节很硬。“省队见。”他说。这是他第一次用句号结尾,“省队见”这三个字不是祝福,不是承诺,是一个已经存在的事实。

沉鱼旋站在人群的最后面。她没有走过来,没有说恭喜,没有笑,没有任何表情。但她在看我,用那双深棕色的眼睛,安静地、长久地看着我。

我从人群中走出来,走到她面前。

“你第几名?”我问。

“第五。”她说,“总分四百九十八。省队。”

省队。第五名,稳稳地进了。

“你也做到了。”我说。

她低下头看着自己脖子上的U盘。“行到水穷处,坐看云起时。”

然后她抬起头。

她的眼眶红了。沉鱼旋从来没有红过眼眶——人大附中的教室里,她从睡梦中醒来,发现靠在我的肩膀上,她没有红眼眶。在网吧的角落里被我找到,她没有红眼眶。被常陆茉子夸“这个剪枝我想不到”,她没有红眼眶。

今天,她红了眼眶。不是那种“想哭但忍着”的红,是那种“我不想哭但它自己红了”的红——像秋天的枫叶,不是被人涂上去的,是季节到了,它自己变了颜色。

“方铨铎。”她的声音在抖,和刚才我的手抖一模一样,“你第一名。”

“嗯。”

“你从人大附中转来的时候,省选第十七名。”

“嗯。”

“你花了不到一年。”

她没有说的那句话,我们都听到了。你没有放弃。你没有让我失望。你是我见过最勇敢的人。

“沉鱼旋。”

“嗯。”

她的眼泪掉下来了。不是一颗一颗的,是一行一行,从眼角沿着鼻梁两侧往下流。流过脸颊,流过嘴角,滴在深灰色的围巾上,把围巾洇湿了一小块。

我的手抬起来。不是我想抬的,是它自己抬的。它放在她的脸颊上,拇指擦过她的泪痕。她的皮肤很凉,眼泪是热的。冷和热在我的手心里交汇,像两条河流汇入同一片湖。

“谢谢你。”我说。

“谢我什么?”

“谢谢你在我失眠的时候陪我打电话。谢谢你送我的U盘。谢谢你刻在上面的那两句诗。谢谢你——一直在那里。”

她的眼泪更多了。不是哭,是某种被压抑了很久的东西终于找到了出口。她从来不哭——在网吧角落里面对我的时候不哭,在人大附中的教室里靠在我肩膀上的时候不哭,在二十天全真模拟中被题目折磨到深夜的时候不哭。她把所有应该哭的时刻都攒着,攒到今天,一起还给我。

丛雨站在不远处,手里拿着那颗橘子味的硬糖,攥了一周还没吃,糖纸被她握得起了褶皱,折痕一条一条的,像这条路上的所有痕迹——省选的成绩、社团的活动、深夜的键盘声、黄樱桃发圈在日光灯下褪去的颜色。她看着沉鱼旋靠在我肩膀上,眼泪一滴一滴地落在我的校服上,把深蓝色的布料洇成了黑色。她没有走过来,但她的嘴角是弯的。

三司绫濑双手捧着奶茶,下巴搁在杯盖上,看着这一切,眼睛里有一种“我终于可以放心了”的温柔。那种温柔不属于任何一个人——她把这群从各个地方来、带着各自伤痛的人捏合在一起,看着他们从陌生人变成战友,从战友变成……

常陆茉子翻开那本随身携带的《算法导论》,“动态规划”那一章的书签被风吹落在地。她没有捡。

周远舟站在门口,手里举着手机,正在录视频。“方哥!沉鱼旋!看这边!”没有人看他。他录下了沉鱼旋靠在我肩膀上的画面。后来他把这段视频删了,但那是后来的事。

鞍马流戴上耳机,坐回角落。他没有放音乐,耳罩里是空的。他只是不想打扰任何人的时间。因为每个人的时间都是有限的,他用完了自己的时间,现在是别人的时间在做最后的结尾。

靠窗的位置,银杏树的枝条光秃秃的,枝丫伸向灰白色的天。省选在春天,春天还没来,银杏树还没有长出新叶。但它的根在地下深处,那些看不见的地方,一直在生长。像我们。像这半年。

我从口袋里拿出那颗橘子味的硬糖,剥开糖纸,放进嘴里。甜。酸。化在舌尖,浸入每一个味觉细胞,再从味觉细胞传回大脑,在某个角落里储存起来。和沉鱼旋给我的糖一样的味道。

丛雨的糖在口袋里。沉鱼旋的糖在嘴里。

我的糖在心里。

“方铨铎。”

沉鱼旋的声音从我肩膀上传来,闷闷的,带着鼻音。

“嗯。”

“你以后还会失眠吗?”

“不知道。”

“如果你失眠了——”

“我就给你打电话。”

她轻轻笑了。那笑声很轻,轻到差点被空调的风声盖过。但她笑了,声音从我的肩膀传进我的耳朵。

窗外的银杏树在等春天。我们在等省队名单,等NOI,等那个更远的、还不知道是什么样子的未来。但今天,我们只需要等一件事——等眼泪流完,等笑容从心底浮上来,等那些被压抑了很久的东西终于找到出口。

这个出口很小。小到只够一个人通过。但那个人后面跟着另一个人,那个人后面又跟着另一个人。他们一个一个地从那个小出口里走出来,走到阳光下,走到没有风也没有云的地方。走到“行到水穷处”的那句诗的结尾。

坐看云起时。

云起了。

-

十七

成绩出来的那天晚上,三司绫濑在群里发了一条消息。

「明晚六点,老地方。最后一次聚餐。所有人必须到。」

最后一次。

这四个字打在屏幕上的时候,群里安静了很久。没有人问“为什么是最后一次”,没有人说“收到”,没有人发那个永远不变的句号。因为每个人都知道答案。

省选结束了。省队名单已经确定。有人进了,有人没有。进的人要去准备NOI,没有进的人要回去准备高考。这条路走到这里,分岔了。从此以后,有的人会继续在OJ上刷题,有的人会把电脑收进柜子里,打开落满灰的课本。

“最后一次聚餐”的意思就是——有些人,你可能再也见不到了。不是见不到这个人,是见不到这个在活动室里敲键盘、和你讨论一道题的最佳解法、在深夜和你一起骂出题人“数据太水”的人。那个人的那个版本,只存在于这间活动室、这段时间、这段记忆里。离开了,就找不回来了。

第二天傍晚,学校门口的小饭馆。

和第一次聚餐是同一家——省选前,三司绫濑在这里给我过生日,蛋糕是巧克力的,上面插着蜡烛。包间是同一个,桌子是同一张,连墙上那幅印刷品的山水画都没有换。但人不一样了。不是人少了——人还是那些,鞍马流、常陆茉子、三司绫濑、丛雨、沉鱼旋、周远舟、我。七个人,一个不少。但每一个人都和几个月前不一样了。

鞍马流今天没有戴耳机。他坐在长桌的最里面,正对着门。这是他第一次坐那个位置——以前他永远坐在角落,背对着所有人。今天他坐在正中间。

常陆茉子坐在他旁边,保温杯放在桌上,杯盖开着,茉莉花茶的香气从杯口飘出来。她的书放在膝盖上,没有翻开。书签夹在第368页——动态规划那一章。她没有拿出来看。三司绫濑站在门口点菜,和老板说话的声音不大不小,断断续续传过来,“不要香菜”“少辣”“先上这些”。她的奶茶放在桌上,乌龙奶茶,加珍珠,三分糖,和以前一样的配方。今天没有加咖啡因的,纯奶茶,大概是怕自己喝完了睡不着——不,她大概今晚也不打算睡。

丛雨坐在我左边,椅子靠得很近,扶手碰着扶手。她今天没有扎马尾,头发散着,披在肩上。黄色的樱桃发圈从她的头发上取下来了,套在手腕上,像一只小小的、黄色的手镯。“你怎么不扎头发了?”我问。

她低头看了一眼手腕上的发圈。“今天不想扎。”她说,“今天是最后一次聚餐,我想换一个样子。”

沉鱼旋坐在我右边。椅子和我之间隔着一条过道。前几天在活动室里,她靠在肩膀上哭了很久,校服上洇湿了一大片。今天那一片已经干了,深蓝色的布料恢复了原来的颜色,但折叠过的痕迹还在,像一条很细很细的河流。

她从口袋里拿出那个暖手宝,粉色的,上面印着一只猫,放在桌上。暖手宝没有开开关,不热,她把暖手宝的电源线绕了几圈,绕成一个很紧的圆,放在桌上,谁也没有给。

周远舟最后一个到,手里提着一个大塑料袋,里面装着七杯奶茶,三司绫濑点的。

“奶茶到了!”他的声音很大,但尾音有点虚。

他把奶茶一杯一杯地拿出来,放在每个人面前。丛雨那杯是焦糖玛奇朵,多糖,去冰,和三司绫濑在群里确认了三次的配方。沉鱼旋那杯是热的珍珠奶茶,不加糖——她不喜欢甜的,上次过生日的时候三司绫濑给她点了三分糖,她喝了一口说“太甜了”,但后来还是喝完了。常陆茉子那杯是白桃乌龙,不加糖,去冰,和白桃乌龙的茶包颜色很配。周远舟自己的那杯是黑糖脏脏茶,黑糖挂在杯壁上,像一幅抽象画。我的那杯是巧克力奶茶。三司绫濑记得巧克力。

“来来来,我们先干一杯。”三司绫濑举起奶茶杯。七杯奶茶在圆桌上方碰在一起,塑料杯碰撞的声音很闷,不像酒杯那么清脆,但那种闷闷的声音更接近心跳。

“敬省选。”三司绫濑说。

“敬省选。”大家跟着说。

“敬省队。”鞍马流的声音从最里面传出来,不大,但很沉。

“敬省队。”

沉鱼旋的声音从围巾后面传出来,闷闷的。她没有说“敬”什么,她只是跟着念了那两个字。但我听到了她的声音里有一种很轻很轻的颤抖,像初春的湖面上第一道冰裂的声音。

菜上来了。酸菜鱼、糖醋排骨、干煸豆角、西红柿炒蛋、辣子鸡丁、清炒时蔬、玉米排骨汤。和上次过生日差不多的菜,和上次省选前聚餐差不多的菜,和这半年来每一次差不多的菜。

但今天没有人抢菜。酸菜鱼的盘子从左边传到右边,又从右边传回来。排骨在碗里没有人夹。玉米排骨汤的热气在包间的灯光下慢慢升起来,散了。

周远舟第一个开口了。他放下筷子,看着桌上的菜,又看着的人,放下筷子,看了很久。那目光在每一个人脸上都停留了一下,像在做一件很重要的事——记住这些脸,记住它们在这个晚上的样子,因为以后可能再也看不到同样的角度、同样的光线、同样的表情了。

“我退役了。”他的声音不大,但包间里的每个人都听到了。

没有人说话。 “回去高考。我妈说,高二下学期了,再不补就来不及了。”

丛雨放下筷子,想说点什么,嘴唇动了一下,又闭上了。

“周远舟。”三司绫濑开口了,“你省选多少分?”

“三百八。差二十分进省队。”

“不是问你分数,我是问你——你尽力了吗?”

周远舟沉默了几秒。

“尽力了。”

“那就够了。”

周远舟低下头,看着碗里的米饭,夹了一筷子放进嘴里。嚼了很久。不是米饭难嚼——是有什么东西堵在喉咙里,咽不下去,也吐不出来。

“我会回来的。”他说,声音有一点哑,“明年NOI,我去给你们加油。”

“不是加油,”鞍马流的声音从最里面传出来,“是等我们拿金牌回来。”

周远舟抬起头,看着鞍马流。鞍马流没有看他,他面前的那杯奶茶已经喝完了,杯底沉着几颗没有吸上来的珍珠。

“好。”周远舟说,“我等你们。”

常陆茉子是第二个开口的。

“我也退役了。”她说这四个字的时候语气和平时一模一样,平稳、安静、没有起伏,像在陈述一个数学定理——两条平行线永不相交。

丛雨转过头看着她。常陆茉子的脸上没有任何表情,保温杯里的茉莉花茶已经凉了。她端起来喝了一口,眉头微微皱了一下——不是因为茶凉了,是因为凉茶的苦味比热茶更明显。

“为什么?”丛雨问。

“高二了。”常陆茉子说,“文化课落下太多了。”

“可是你的成绩——”

“成绩不能当饭吃。”她的声音不大,“高考也不能。但高考考砸了,连饭都吃不上。”

没有人反驳。因为她说的是对的。信息学竞赛是千军万马过独木桥,但桥的那头不是终点,只是另一个起点。不是每个人都能走到那个起点,也不是每个人都想走到那个起点。

“茉子。”三司绫濑叫她。常陆茉子抬起头。

“你的书签——动态规划那章,你翻了很多遍。”

常陆茉子的手指停在保温杯的杯盖上。她从膝盖上的书里抽出那张书签,看着上面印着的那行字——‘It‘s not a bug, it’s a feature.’。她把书签放回口袋里,不是夹在书里,是放进了口袋里。

“以后不搞竞赛了,但书留着。”她说,“那本书上有我写的笔记。不能给别人看。”

周远舟笑了一下,眼眶有一点红。

丛雨一直没有说话。她坐在我旁边,手指在桌面上无意识地画圈,一圈一圈的,越画越小。那个圈从盘子那么大画到碗那么大,从碗那么大画到杯口那么大,最后缩成一个点。她把手指停在那个点上,按住了。那个点下面是她的名字——丛雨。用食指画的,画在木桌的纹路上,没有痕迹。

“丛雨。”三司绫濑叫她的名字。

她的手从桌面上收回来。

“你会退役吗?”

丛雨没有立刻回答。她低下头,看着手腕上那个黄色的樱桃发圈。在灯光下,它比以前更淡了,淡到几乎看不出原来的颜色。“我不知道。”她说,声音很小,“我想继续搞。但我怕我搞不好。”

鞍马流放下筷子,看着丛雨。丛雨被他看得有些局促,把脸别过去了一点。

“你从一百六十分,考到三百四十分,用了二十天。”

丛雨的手指攥紧了衣角。

“如果你再给自己二十天?”鞍马流的句子没有说完。后半句是省略号:你会到哪里?

丛雨没有回答。她的衣角被攥得皱巴巴的,指甲嵌进布料里,把深蓝色的校服攥出了四个月牙形的印痕。“我会继续搞。”她说,“至少,再给自己二十天。”

丛雨没有看她。她看着桌上那盘已经凉了的酸菜鱼,鱼汤的表面凝了一层薄薄的油,灯光照在上面,映出包间里所有人的倒影。七个人,七个小小的、模糊的影子。她伸出手,在那些倒影上方画了一个圈,把七个人都圈了进去。

沉鱼旋一直没有说话。她坐在那里,面前的奶茶没有喝,吸管还插在塑料封膜里。珍珠奶茶不加糖,是她不喜欢的甜的。但那天三司绫濑问她“要什么”的时候,她没有说“不要”,她说“热的珍珠奶茶,不加糖”。

所以她说了。她要了一杯她不喜欢喝的奶茶。因为她也想和大家一起举杯,也想在杯壁相碰的瞬间,听到那种闷闷的、像心跳一样的声音。

“沉鱼旋。”我转过头看着她。

她抬起头。眼眶不红了,泪痕已经干了。她的眼睛很亮——不是那种被泪水洗过的亮,是那种“我已经想好了”的亮。

“我不会退役。”她说。声音不大,但每一个字都很清楚。

“我还要打NOI。还要打国赛。还要打——”

没有说完。因为“还要打”后面的东西太远了,远到看不清。但她说出来了,说出来就够了。

三司绫濑站起来,举起奶茶杯。杯里的奶茶已经喝完了,杯底只有一层薄薄的珍珠,粘在塑料上,用吸管戳也戳不起来。

“我宣布——”她的声音在包间里回荡着,和这半年来每一次宣布事情一样——没有前奏,没有铺垫,只有结论。

“信息学竞赛社团,本届成员,正式退役。”

没有人鼓掌。

“鞍马流,退役。常陆茉子,退役。三司绫濑,退役。”

她念了三个名字。念到“三司绫濑”的时候,她的声音停了一下。大概零点几秒。

“周远舟,退役。丛雨,沉鱼旋,方铨铎——你们三个,还没到时候。”

念到我的名字的时候,她的目光停在我身上,像一盏灯的开关,啪嗒一下,打开了。不是照亮,是确认——确认我还在。确认我还会继续走下去。

“省队见。”三司绫濑说。这一次不是对鞍马流说的,是对我们三个人说的——对丛雨、对沉鱼旋、对我。

“省队见。”

九点多,聚餐结束了。

大家站在饭馆门口,北京的冬夜,没有风,但很冷。呼出的白气在路灯下像一小片一小片的云,飘起来就不见了。

周远舟第一个走。他背着那个用了三年的双肩包,拉链上挂着一个已经褪色的ACMer钥匙扣,走到路口,停下来,转过身。

他挥了挥手。没有喊“再见”,没有喊“保重”,没有任何一个字。只是挥了挥手,像在赶走一只飞得太近的飞虫。那只飞虫在他身边绕了半年,今天终于要飞走了。他转身,走了。

常陆茉子第二个走。她和三司绫濑一起走,两个人往同一个方向,但走得很慢,比平时慢了很多。三司绫濑的奶茶杯空了,拿在手里,没有扔。常陆茉子的保温杯还满着,茉莉花茶已经凉了。

鞍马流最后一个从饭馆里出来,双手插在口袋里。

“鞍马前辈。”我叫他。

他停下来,转过头。

“NOI加油。”

他看着我,嘴角动了一下。不是笑,是那种“我知道了”的表情。

“你也是。”

他走了。没有回头,步子很大,走得很快。他的背影在路灯下越来越远,越来越小,最后消失在路口的拐角处。那个拐角他走过无数次,每一次都是去活动室,今天不是。

丛雨、沉鱼旋和我,三个人站在饭馆门口。

路灯把我们的影子投在地上,黑色的,瘦长的,从脚下一直延伸到马路的中央。三个影子排成一排。丛雨的影子最小,沉鱼旋的影子的头发很长,我的影子的肩膀最宽。

“方铨铎。”丛雨叫我。

“嗯。”

“你会记得今天吗?”

“会。”

“你会记得所有人吗?”

“会。”

“你会记得我吗?”

我看着她的眼睛。黄色的樱桃发圈在她手腕上,路灯的光落在那上面,把褪色的淡黄染成了暖黄。

“会。”我说。

丛雨低下头,把发圈从手腕上取下来,放在手心里。

“这个发圈——”她的声音有一点哑,有一点弱,像这些天所有没说完的话一起涌上来,堵在喉咙里,变成了一个很小很小的音量。

“送给你。”

她把手伸过来。发圈躺在她的手心里,很小,很轻,淡黄色,塑料樱桃在灯光下微微反着光。

我接过来,套在手腕上。

发圈的松紧刚好,不紧不松,像她这个人。

丛雨看着我手腕上的发圈,忽然笑了。那笑容和以前每一次都不一样——不是Ciallo时的狡黠,不是AC时的兴奋,是一种很安静的、像是把什么东西放下了的笑。

“那我走了。”她说。

“嗯。”

“你送沉鱼旋回去。她一个人走夜路会害怕。”

沉鱼旋站在旁边,深灰色的围巾围得很高,遮住了半张脸。

丛雨转身向宿舍的方向走去。马尾辫没有扎,头发散着,在路灯下像一条很黑很亮的瀑布。她走了几步,忽然停下来,没有转身。

“方铨铎。”

“嗯。”

“Ciallo。”

她的声音从前面传回来,不大,但很清楚。和这半年来的每一次一模一样——第一次在机房门口,第一次在食堂,第一次在活动室,第一次在人大附中的天台上。每一次的语调、节奏、力度,都一模一样。

这是她最后一次对我说Ciallo。

不是以后不说了。是以后再说的时候,已经不一样了。地方不一样,时间不一样,我们不一样。

“Ciallo。”我说。

她走了。头发在路灯下晃了几下,消失在宿舍楼的门口。

沉鱼旋站在我旁边,围巾遮住了半张脸,只露出眼睛和鼻梁。她的眼睛在路灯下亮着。人潮散尽,最后幸存的两个人,在空旷的街道上保持着恰到好处的距离——不远,不近,像影子与本体之间应该相隔的那一小段,恰好是你伸出手能够到、不伸就够不到的距离。

“走吧。”我说。

“嗯。”

我们并排走在回宿舍的路上。路灯一盏一盏地把光铺在脚下,脚踩过去,影子从身前转到身后,再踩一步,又转回来。

“方铨铎。”沉鱼旋开口了。

“嗯。”

“今天,很多人都走了。”

“嗯。”

“但你没有走。我也没有走。”

她在说一个事实。不是承诺,不是保证,只是一个事实——我们还在。还在这条路上,还在这个活动室里,还在这个社团里。虽然很多人走了,但我们还在。

“沉鱼旋。”

“嗯。”

“你的围巾——从第一天到现在,一直没有换过。”

她低下头,看着自己脖子上的深灰色围巾。围巾的边角已经起球了,有一段被她攥得皱皱的,怎么也抚不平。“因为它还能戴。”她说。

“还能戴就不换?”

“还能戴就不换。”

人的心思和围巾是差不多的材质,被攥久了会起皱,起皱就抚不平了。但还能用。

就走到了宿舍楼下。沉鱼旋停下来,转过身看着我。路灯的光落在她的脸上,把她的轮廓照得很柔和。围巾遮住了她的下颌线,遮住了她的嘴角。但遮不住她的眼睛——那双深棕色的眼睛在路灯下,很深,很亮。

“方铨铎。”

“嗯。”

“今天你哭了吗?”

“没有。”

“我也没哭。”她微微低下头,看着地上两个人变短再变长的影子,“但我们都没哭,是因为哭的人太多了。总要有人不哭,把它们补回来。”

她看着我的手腕。丛雨的黄色樱桃发圈在路灯下微微泛着光。她的目光停在那个发圈上,没有嫉妒,没有羡慕,只是一种很平静的注视。

“这个发圈,很好看。”她说。

“嗯。”

“很适合你。”

她转身走进宿舍楼。深灰色的围巾在门后面闪了一下,消失了。

我站在宿舍楼下,路灯把影子铺在脚下。

丛雨的黄色樱桃发圈,套在我的手腕上。沉鱼旋的行到水穷处,坐看云起时,刻在银色的U盘上。鞍马流的“别停”,写在便签纸上,夹在我的《算法竞赛进阶指南》里。

图书馆借来的那本,书脊上的标签已经翘起来了。

常陆茉子的“沉舟侧畔千帆过,病树前头万木春”,我还记得那行小字在纸上的位置——A4纸的正中央,字体很小,笔画很细。三司绫濑的奶茶配方,乌龙奶茶加珍珠三分糖,全社团只有她一个人喝这个口味。周远舟还欠我一道题的最优解,他答应过会找到的。他说“超过你之前我不会放弃的”。他退役了,但这句话大概还作数。

手机震了一下。丛雨发来的消息。

「方铨铎,发圈你要好好戴着。不许弄丢。」

我回了两个字。

「不会。」

沉鱼旋没有发消息。她的头像在聊天列表里亮着,灰色的。过一会儿会变成彩色,过一会儿会变成灰色,再过一会儿又会变成彩色。她在手机那头,在做自己的事,在等自己的未来,在走自己的路。

我抬头看了一眼四楼。活动室的灯还亮着。白炽灯的光从窗户里透出来,把窗框的影子投在对面的墙上,一个深色的长方形。长方形的里面,有七个人。

不,已经没有人了。

但灯还亮着。

十八

省队名单公布后的第三天,三司绫濑在群里发了一条消息。这一次不是“所有人必须到”,而是“活动室的东西,你们收拾一下”。

收拾一下。这四个字的意思是,那些退役的人不会再来了。他们的书、他们的笔记、他们留在桌上的贴纸和刻痕,需要有人处理。不是扔掉,是收好。放在某个地方,等有一天他们想起来了,回来拿。或者不回来。

群里的头像从七个变成了三个。丛雨的黄色樱桃头像,沉鱼旋的灰色围巾头像,我的默认灰色方块头像。三司绫濑的最后一条群公告是:“钥匙不用还。你们还要用。”

没有人回复。因为回复什么都没有意义——“收到”太冷,“好”太短,“我们会想你们的”太矫情。不如不说话,不如让那条消息安安静静地待在聊天列表里,像一个已经没有人住的房子,灯还亮着,但你知道不会再有人推开那扇门了。

周一的清晨格外的冷。二月末的北京,春天像是一个迟到的人,迟迟不来。科技楼的走廊和以前没什么不同,楼道里的声控灯还是那个节奏——跺一脚,亮一层;走两步,灭一层。

活动室的门锁着。不是“没锁”的开着,是锁着。我掏出钥匙——那把我已经很久没用过的钥匙,插进锁孔,向右拧了一圈半,咔嗒一声,门开了。

门推开的那一刻,我站在门口,没有进去。活动室和以前不一样了。不是东西少了——是东西还在,但用东西的人不在了。

白板上还留着三司绫濑写的最后一个数字。红笔写的,笔迹很工整,横平竖直,和她这个人一样——看起来慵懒,其实每一笔都经过计算。

「省选倒计时:2天」

两天。省选已经结束五天了。这个数字在时间的坐标上停留了七天。它不知道时间已经往前走了,它只知道自己是“2”,但它不知道“2”后面是“1”,“1”后面是“0”,“0”后面是负数。

丛雨站在我身后,探头往里面看。“好安静。”她说。

沉鱼旋站在更后面,没有说话。但她的手从口袋里伸出来,攥着那把钥匙——她也有钥匙,三司绫濑给她的,以防万一。

三个人站在门口,看着这间空荡荡的活动室。三秒。五秒。七秒。

沉鱼旋第一个走进去。她走到鞍马流的位置——书架旁边,左边是墙,右边是窗。她站在那里,低头看着桌面。桌面上什么都没有,干干净净,像没有人坐过。但桌子的边缘有一道很浅的划痕,是耳机线长期摩擦留下的痕迹。

丛雨走到常陆茉子的位置。保温杯不在,书签不在,那本翻烂了的《算法导论》不在。但桌面上有一个圆形的杯印——保温杯放了太久,热气在桌面上留下了一个浅浅的、几乎看不清的圆圈。像年轮。像树的记忆。

我走到三司绫濑的位置。奶茶杯不在,咖啡机不在,白板笔不在。但白板下面的槽里,攒了十几支用完了的马克笔,笔帽上积了一层薄薄的灰。她从来不扔用完的笔,就放在那里,等下一支也用完。

“我们得重新布置一下。”丛雨第一个开口。“不是扔掉,是——”

“是让他们还在。”沉鱼旋接上了。

丛雨看了她一眼。沉鱼旋低下头,把围巾往上拉了拉。

我们从上午九点开始收拾。不是打扫卫生,是整理遗物——不,不是遗物,是“暂时存放在这里的东西”。鞍马流的栗子。周远舟的便签纸。三司绫濑的笔。常陆茉子的书签。丛雨把它们从各个角落找出来,放在一个纸箱里。纸箱是丛雨从食堂要来的,装过苹果,打开的时候有一股水果的甜味。

沉鱼旋负责擦桌子。她把每一张桌子都用湿抹布擦了一遍,再用干抹布擦干。从第一排到最后一排,从左到右。擦到鞍马流那张桌子的时候,她停了下来。那道耳机线摩擦出来的划痕,很浅,但她用湿抹布擦的时候,水渗进划痕里,划痕变得清晰了,像一条刚被挖出来的河。她没有试图擦掉它。她把抹布拧干,沿着划痕的方向擦了一遍,让水流进去,又流出来。

我负责搬东西。书架上的书——常陆茉子留下的那些,整整齐齐地码放着,每一本的书脊都朝外,高度从高到低排列。这是常陆茉子的习惯,她整理书架的方式和她写代码的方式一样。后来的人是谁整理的已不可考,但后来的人沿用了她的习惯。

我把她的习惯留在那里。

下午,丛雨忽然说了一句。“我们还缺东西。”

“缺什么?”

“床。电视。冰箱。可以放松的设备。”

我看着她。“你在说什么?”

“我是认真的。”她的眼睛很亮。“省队集训要五个月。每天从早到晚待在这里,没有床怎么休息?没有电视怎么放松?没有冰箱怎么喝冰可乐?”

沉鱼旋从角落里抬起头。“我不喝可乐。”

“你可以喝冰水。”

“……冰箱可以放你的白水。”

三个人对视了一眼。“行。”我说。

丛雨在三司绫濑拉的那个群里发了一条消息——不是社团群,是新拉的群,只有三个人。群名叫“省队集训基地改造计划”。头像是一颗栗子。她找的图。大概是在暗示鞍马流,大概不是。

“床,电视,冰箱。谁负责?”

“电视。我负责。”沉鱼旋说。这是她第一次主动认领任务。

“冰箱。我来。”我说。

“那我负责床。”丛雨笑了。“我知道哪种床最舒服。”

第二天,快递到了。

科技楼没有电梯。我们把东西从一楼搬到了四楼。冰箱没有我想象的重,但也足够让我在搬完之后瘫在椅子上喘了五分钟。丛雨搬床垫的时候差点在楼梯上摔倒,沉鱼旋从后面一把抓住了她——不是抓住她的胳膊,是抓住了她的马尾辫。因为只有马尾辫够得着。人在万分紧急的时候,身体比大脑先做出反应。她的手抓住了丛雨的马尾辫,丛雨的头往后仰,人稳住了。黄色樱桃发圈在沉鱼旋的手心里,被攥得变了形。

“对不起。”沉鱼旋松开手。丛雨摸了摸自己的头发,把发圈重新扎好。“没事。你手劲真大。”

“不是手劲大,是你的发圈质量好。”

两个人都愣了一下。然后丛雨笑了,沉鱼旋的嘴角也动了一下。这是我想让这间活动室变成的样子——不只是我们三个人的活动室,是所有人的活动室。那些已经离开的人,他们的东西还在。

鞍马流的栗子,放在冰箱旁边。常陆茉子的书签,夹在书架上的某本书里。三司绫濑的马克笔,陈列在白板下方的槽中,排成一道彩虹。周远舟的便签纸,贴在冰箱门上,“叫我小周就行”。

还有丛雨的黄色樱桃发圈。沉鱼旋深灰色围巾。我的“行到”U盘。

我们都在。离开的,留下的,都在这间不大的活动室里。以不同的形式,以不同的速度,以不同的温度。在这个时空中,我们曾短暂地汇集在一起,然后各自散去。

新冰箱插上电的时候,发出嗡嗡的声音。不是噪音,是白色的、恒定的、像背景一样的声音。和键盘声很像。和呼吸声很像。和心跳声很像。

丛雨打开冰箱门,看着空荡荡的冷藏室。“我们的冰箱,第一件东西应该放什么?”

想了想。“可乐。”

沉鱼旋说:“白水。”

“投票。同意放可乐的举手。”丛雨举起手。

我没有举。沉鱼旋没有举。

“二比一。放白水。”

丛雨撇了撇嘴。但她从书包里拿出一瓶农夫山泉,放进冰箱里。不是她爱喝的,是她觉得应该放的。

沉鱼旋看着那瓶农夫山泉,看了一会儿,从口袋里拿出一颗橘子味的硬糖,放在水瓶旁边。“糖不算食物。”她说。“但放冰箱里不会坏。”

冰箱门关上了。嗡嗡的声音还在。像一个人的脉搏,不响,但一直在。

电视也装好了。

沉鱼旋选的是一台三十二寸的小电视,挂在墙上,正对着三张桌子。不大不小,刚好能让三个人同时看到。遥控器在她手里,她按了一下电源键,屏幕亮了。

正在播放的是一个综艺节目。五颜六色的画面在活动室的墙上投下光斑,红的、绿的、蓝的。那些光落在白板上、书架上、键盘上,像一场无声的烟花。

丛雨坐在椅子上,仰头看着电视。“我们多久没看电视了?”

“半年。”我说。

“半年。”她重复了一遍。

沉鱼旋没有说话。但她把遥控器放在桌上,放在三个人都能拿到的地方。这是一个信号——不是“你们可以看电视”,而是“你们可以在这里做任何事”。不只是写代码,不只是刷题,不只是为了NOI活着。可以看电视,可以喝可乐,可以发呆,可以什么都不做。

丛雨买的床是折叠的。

白天收起来靠墙放,晚上打开铺在地上。不大,刚好够一个人睡。她买了三张,一人一张。淡蓝色,棉质的,闻起来有一股新布料的味道。没有洗衣液的香精,是棉花本身的味道。

她把三张床垫并排铺在地上,自己躺在中间那张,双手枕在脑后,看着天花板。

“方铨铎,你有没有觉得,这间活动室变大了?”

“没有。”我说。“变挤了。放了冰箱、电视、三张床。”

“我说的不是物理上的大。”她转过头看着我。“是心理上的大。”

沉鱼旋从角落里接了一句。“是因为这里什么都有。电脑,书,冰箱,电视,床。可以写代码,可以睡觉,可以吃东西,可以看电视。生活不止有竞赛。”

她说“生活不止有竞赛”的时候,语气很平,和她说“这道题用点分治”的语气是一样的。但这句话的意思比任何一道题都更深。它是这半年所有的WA和AC、所有失眠的夜晚、所有被压抑的情绪,在时间的沉淀之后提炼出来的一滴透明液体。不多,就一滴。但这一滴可以稀释进一整杯水里,让整杯水都带着它的味道。

丛雨闭上眼睛。“我想睡一会儿。”

“睡吧。”

“你不走?”

“不走。”

沉鱼旋从角落站起来,走到冰箱前,打开门,拿出那瓶农夫山泉,拧开盖子,喝了一口。拧紧,放回去。关门。

她从书架最上层拿下那条深灰色的围巾——旧的,起球的,中间有一段被攥得皱皱的。她把围巾叠好,放在丛雨的枕头旁边。不是给她盖的,是让她枕的。旧围巾比新围巾软。旧围巾带着主人的体温。主人把它放在这里,让她枕着睡。

时间在活动室里走得很慢。

丛雨睡了四十分钟。醒来的时候看到枕头旁边的灰色围巾,愣了一拍。她拿起围巾,摸了摸起球的边角。“沉鱼旋,这是你的围巾。”

“嗯。”

“为什么给我?”

“因为你在睡觉。睡觉需要枕头。”

“……谢谢。”

沉鱼旋没有回答。她坐在角落,面对着电脑,屏幕上是一道正在调试的代码。但她的手指没有动。她在听。听丛雨醒来的声音,听我翻书的声音,听冰箱嗡嗡的声音,听这间活动室里所有的、细碎的、活着的声音。

丛雨把围巾叠好,放回书架最上层。不是还给沉鱼旋,是放在那里。放在鞍马流的栗子旁边,放在常陆茉子的书签下面。属于每个人,又不再属于任何一个人。

“方铨铎。”

“嗯。”

“你觉得,他们会回来吗?”

“谁?”

“周远舟。常陆茉子。三司学姐。鞍马前辈。”

我想了想。

“周远舟说他会来。他的便签纸贴在冰箱上,‘叫我小周就行’。他大概不会撕掉。常陆茉子的书在书架上,书签夹在第368页。她读到那里,停下来,不会再读下去。但那一页她读了无数遍。每一个字她都知道。”

我看了看那道耳机线留下的痕迹。“鞍马流。他的耳机不在了,但他的划痕在桌面上,没有人能擦掉。”

丛雨没有问三司绫濑。三司绫濑不用回来。她从来没有离开过。这间活动室的每一个角落都有她——白板上的字是她写的,冰箱是她让我们买的,电视是她同意的,床是她没反对的。她一直在。以“不反对”的方式,以“你们自己决定”的方式。

丛雨低下头,把脸埋在胳膊里。肩膀没有抖。她没有哭。只是把脸埋起来了。“因为笑着说话的时候,眼泪会倒流。倒流到眼睛里、鼻子里、喉咙里。不难受,但你知道它们在那里。”

沉鱼旋从角落站起来,走到冰箱前,打开门。拿出那瓶农夫山泉,拧开盖子,倒了一杯水。水是凉的,杯壁上有凝结的水珠。她端着水杯走到丛雨面前,放在她桌边。

“喝点水。哭完会渴。”

“我没哭。”

“没哭也可以喝水。”

丛雨抓起水杯喝了一大口,手背蹭了一下嘴角。水珠留在皮肤上,在日光灯下反着光。

沉鱼旋把水杯拿回去,放在桌上,退后一步,站在那条“不远不近”的距离线上——伸出手能碰到,不伸就够不到。

冰箱里后来多了很多东西。

不是我们买的,是有人送来的。三司绫濑送来了一箱奶茶,乌龙奶茶加珍珠三分糖,她喝的那种。不是给我们喝的,是给我们“放着”的。像她那个人一样,从来不问你“要不要”,只说“我给你放在这里,你想喝就喝,不想喝就放着”。

常陆茉子让人送来了一袋茉莉花茶。没有留纸条,没有发消息。

周远舟送来了一箱可乐。“方哥!冰可乐!放冰箱里!想喝就喝!不用谢!叫我小周就行!”群拉得很长,但我读完了。因为每一个字都带着他的声音,好像他还在这间活动室里扯着嗓子喊“方哥你看我这道题”。

鞍马流没有送东西来。但他的栗子还在冰箱旁边。

丛雨低头看着冰箱里的这些东西——奶茶、花茶、可乐、栗子。

常陆茉子的茶在一个透明的密封罐里,茶是绿色的,卷曲的,像一小片一小片的春天。周远舟的红罐可乐在冰箱门上,易拉罐表面凝着一层薄薄的水珠。那罐可乐放进去以后再也无人问津。不是因为不想喝,是因为喝了就没有了。可乐会过期,但这罐可乐放在零到四度的冷藏室里,保质期被无限延长。不是物理意义上的延长,是心理意义上的。

沉鱼旋从口袋里拿出那颗橘子味的硬糖,放在可乐旁边。糖纸是橘色的,在冰箱的白灯下显得很亮。

“这颗糖,是谁的?”丛雨问。

“没有人的。”沉鱼旋说。“放在这里,谁的都可以吃。”

放在这里,谁都可以用。

这间活动室,从“信息学竞赛社团”变成了“省队集训基地”,变成了“一个可以睡觉、看电视、喝冰可乐的地方”。

电脑还在,键盘还在,白板还在。代码还在写,题还在刷,NOI还在前方。但这条路不再是唯一的——不是“你只能写代码,不能做任何事”。你可以累,可以哭,可以躺在折叠床上看着天花板发呆,可以看综艺节目到深夜,可以打开冰箱拿出一瓶凉白开,喝一口,放回去。门不关,灯不灭。

那天晚上,活动室的灯一直亮着。

丛雨躺在中间的折叠床上,面对着白板。“方铨铎,你还记得三司学姐写的那个‘2’吗?‘省选倒计时:2天’。那个数字已经过去好几天了。”

“要不要把它擦掉?”

“不要。”她没有犹豫。“那是她写的最后一个字。擦掉就没有了。没有了。”

沉鱼旋从书架上拿下常陆茉子的书签。那行字已经看过无数遍了——‘It‘s not a bug, it’s a feature.’她看了很久,把书签放回去。

“这本书,我不会看完。”她说。“第368页是最后一页。后面的内容,我不需要了。”

丛雨问她为什么。她说:“因为动态规划已经学完了。剩下的,是以后的事。”

她从口袋里拿出那个银色的U盘,「行到」。U盘握在手心里,拧开盖子,USB接口露出来,银色的,没有刮痕,没有指纹。她把它插在冰箱上。不是插在电脑上,是插在冰箱上。

冰箱有一个USB接口。不知道为什么——大概是用来给手机充电的?从来没有研究过那个接口是干什么的,今天终于被它第一次使用,插了一个U盘。U盘里没有任何文件,是一个空的U盘。里面只有名字。她说:“行到水穷处,坐看云起时。水穷处已经过了。现在是云起时。云起的时候,不用写代码,不用做题,不用想任何事情。只需要看。”

丛雨忽然站起来,走到白板前,拿起一支红色马克笔。不是三司绫濑用的那种——三司绫濑的笔在槽里,她拿的是新的一支。全新的一支红笔,刚拆封,墨水饱满,笔尖锋利。

“我们重新写一个数字。”她在白板上写下了一个新的数字。

「NOI倒计时:150天」

不是2,不是0,不是负数。是150。一百五十天,五个月。不长不短,刚好够一个人从谷底爬到山顶,刚好够一座城市从冬天走进夏天,刚好够一些已经离开的人重新回来,或者彻底走远。

三人加一堵白墙,一室灯光,一整个晚上。

“从今天开始,这间活动室不叫活动室了。”

丛雨宣布,声音不大,但在这间十几平的房间里来回弹了好几次——从白板弹到冰箱,从冰箱弹到电视,从电视弹到窗户,从窗户弹回来。

“那叫什么?”沉鱼旋问。

丛雨想了想。“叫——”

“我们的地方。”

沉鱼旋低下头。我也没有说话。

丛雨走出去,走到走廊里,关上门,再推开。“我回来了。”她说。“每次回来,都要说这句话。”

沉鱼旋攥着U盘的手松开了。U盘从冰箱上掉下来,落在她手心里。她把它握紧,放进口袋。

“欢迎回来。”她说。

-

十九

CF的夜晚是从十点开始的。

Codeforces Round #952,开场时间22:05,北京时间的周五晚上。这个时间点对于任何作息正常的人来说都太晚了,但对于竞赛生来说,刚刚好。白天太吵——有课,有作业,有老师,有各种各样必须回复的消息和必须面对的人。只有到了晚上,十点以后,世界才安静下来,属于你,属于代码,属于那一个个在评测机上奔跑的黑色方块。

丛雨把活动室的灯调暗了。不是关掉,是调到一半亮度的那一档。日光灯管的镇流器嗡嗡地响,像某种低频的背景音乐,听久了会忘记它的存在,但它一直在。冰箱嗡嗡地响,电视待机灯亮着红色,三台电脑的风扇在转,键盘在响。只有这些声音。

“CF开始了。”丛雨说。她坐在中间,面前摆着一杯从冰箱里拿出来的冰可乐,易拉罐外面凝了一层水珠。她喝了一口,放在桌上,罐底和桌面接触的时候发出很轻的“嗒”的一声。

沉鱼旋坐在角落,开着另一台电脑,屏幕上是CF的题目页面。她没有喝可乐——她从冰箱里拿出那瓶农夫山泉,倒了一杯,放在桌上。杯壁透明,水是透明的,和以前任何时候都一样,和她这个人一样。

我坐在靠窗的位置,打开题目。第一道题是签到题,Div.2的A题通常很简单,读完题就有思路。我开始写代码,手指在键盘上动得很快——不是急,是这具身体已经被训练出了条件反射,看到简单题,手指自动进入高速模式,不需要大脑下达指令。

活动室里的键盘声,三台电脑的键盘声,音调不同,节奏不同,像三件不同的乐器在演奏同一首曲子。丛雨的键盘声最轻,她的手指落键很浅,像怕吵醒什么人。沉鱼旋的键盘声最均匀,不快不慢,从不断开,像呼吸。我的键盘声最大——机械键盘,青轴,声音清脆,像在敲某种打击乐器。

A题,Accepted。

我提交的时候,绿色的字母跳出来,我靠在椅背上,喝了一口水。丛雨的A题也过了,她转过头看了我一眼,笑了一下,很快又转回去看B题。沉鱼旋的A题比我快了大概两分钟——她提交的时候我还在写代码,她的手指永远比我快一点,不是手速的问题,是她读题比我快,想得比我快,做决定比我快。

B题。读完题面,我知道这是一道贪心。n个任务,每个任务有截止时间和收益,每个任务需要花费一个单位时间,问在时间限制内能获得的最大收益。经典的“任务调度”问题,按截止时间排序,用小根堆维护已选任务的收益。我写过这个板子不下二十遍。

我开始写。写完之后测试样例,全部通过。提交。Wrong Answer on pretest 2。

我盯着那个红色的WA看了几秒钟。第二组数据是什么?题目没有显示。我需要自己找bug。我一行一行地检查代码。排序是对的,堆维护是对的,贪心策略是标准写法。问题出在哪里?

我又读了一遍题面。“每个任务需要花费一个单位时间。”这是标准表述。但题目还有一个附加条件——任务可以分割。不是一个任务必须完整地做完,可以分成若干小块,在不同时间段执行,只要总执行时间加起来等于1。这意味着贪心策略改变了——不是选收益最高的任务,而是每个单位时间都选当前可执行的任务中收益最高的那个。这是一个不同的算法,需要按时间顺序模拟,用优先队列维护当前可执行的任务。

我写错了。我把不可分割的标准贪心套在了一个可分割的题目上。

我删掉代码,重新写。这一次用了优先队列模拟时间。写完的时候,时间已经过去了四十分钟。提交。Accepted。但我的排名已经从两千掉到了五千。

C题。Div.2的C题通常是分水岭。做得出来,排名就能进三千;做不出来,就掉到五千以后。

我读完题面。是一道树上的计数问题——给定一棵树,每个节点有一个颜色,求有多少条路径满足路径上不同颜色的数量不超过k。n≤200000,k≤10。读完题的时候,我脑子里有一个想法——点分治,在分治的过程中用一个数组记录当前路径上每种颜色的出现次数。因为k≤10,状态数有限,可以用状态压缩。

我开始写。点分治的框架写了二十分钟,颜色统计的函数写了十五分钟,合并答案的部分写了十分钟。写完之后编译,通过了。测试样例——第一个过了,第二个过了,第三个——WA。

我盯着那个WA,看了很久。不是什么大错误,是一个小错误——我在统计颜色数量的时候,把“不超过k”写成了“小于k”。等于k的情况被漏掉了。改了一行代码,重新测试。第三个样例过了。第四、第五、第六——全部通过。

提交。黄色的Pending。我盯着屏幕,等着那个结果。

Time limit exceeded on pretest 7。

TLE。不是WA,是TLE。代码逻辑是对的,但跑得太慢了。n=200000,点分治的复杂度是O(n log n),每次分治都要遍历子树,每个节点上的颜色统计需要O(k)的时间——k最大是10,常数不大。但这个题的时限只有两秒,我的常数太大了,被卡了。

我尝试优化。把vector换成数组,把递归改成非递归,把STL的优先队列换成手写的堆,把取模运算改成位运算。我做了所有我能做的优化,重新提交。Time limit exceeded on pretest 7。还是TLE。

我又试了一次。还是TLE。

第四次。TLE。

第五次。TLE。

时间已经过去了两个小时。C题还没过。D题、E题、F题——不用想了。我关掉了C题的页面,打开了D题。D题是数学题,推了十分钟公式,发现需要用到莫比乌斯反演,我不会。E题是字符串题,后缀自动机,我不会。F题是数据结构题,LCT,我也不会。

我在D题上写了一个暴力,拿了二十分。提交。Accepted。二十分。

凌晨一点。CF结束了。

我排名六千三百名。历史最低。

丛雨做了四道题,排名两千一。她关掉电脑的时候伸了一个懒腰,马尾辫晃了晃,“方铨铎,你多少名?”

“六千三。”

她的动作停了一下。“……哦。”

她没有说“没事的”,也没有说“下次加油”。她只是“哦”了一声,然后站起来,拍了拍我的肩膀。力气不大,但那个动作里有“我知道你现在不想说话”的意思。

“我回宿舍了。你也早点回去。”她走到门口,回头看了我一眼,“沉鱼旋,你呢?”

“我再待一会儿。”

丛雨走了。门关上了。

沉鱼旋关掉了CF页面,但没有站起来。她坐在角落里,面对着自己的屏幕,屏幕上什么都没有,只有一个桌面背景——深蓝色的,上面有一行字:“行到水穷处,坐看云起时。”她把自己的诗句做成了桌面背景,字是白色的,很小,在屏幕的右下角,不仔细看几乎看不到。

活动室里很安静。冰箱嗡嗡地响,电视待机灯亮着红色。两台电脑的风扇在转——我的和沉鱼旋的。只有这些声音。

“方铨铎。你在想什么?”沉鱼旋的声音从角落传来。

“没什么。”

“你骗人的技术很差。”

我没有回答。

“你在想CF的事。”她站起来,走到我旁边,站在那条“不远不近”的距离线上——伸出手能碰到,不伸就够不到。

“嗯。”我说。

“你考了六千三。”

“嗯。”

“你不高兴。”

“嗯。”

她沉默了几秒。“方铨铎,你还记得你省选前失眠的那天晚上吗?”

“记得。”

“你跟我说,你怕第一题写错了。你说如果第一题零分,你就完了。”

“记得。”

“后来呢?”

“后来第一题没有零分。我拿了全省第一。”

“对。”她说。“你拿了全省第一。六千三百名不会改变这个事实。一场CF不会改变这个事实。一次失误不会改变这个事实。”

我抬起头看着她。她的围巾换了——不是深灰色,不是浅灰色,是一条新的、暗红色的围巾。她很少穿暖色调。但这条暗红色的围巾在她身上,很好看。

“你换了围巾。”我说。

“嗯。旧的放在书架上了。”

“为什么换?”

“因为——我想换一个颜色。”

她没有说“为了你”,也没有说“不是为你”。她说“我想换一个颜色”。这个回答很沉鱼旋——不解释,不否认,不承认。只是陈述一个事实。

“沉鱼旋。”

“嗯。”

“你能陪我去一个地方吗?”

“哪里?”

“天台。”

她没有问为什么。她拿起桌上的水杯,喝了一口水,把杯盖拧紧,放在桌上。“走吧。”

科技楼的天台。门没有锁——不是没锁,是丛雨上次走的时候用纸巾塞住了锁舌。白色的纸巾被门压扁了,从门缝里露出一小截,像一朵开在冬天的、很小的、白色的花。

天台上很暗。没有月亮,没有星星。北京的天空一年四季都是这样——灰蒙蒙的,像一块被人反复使用过的橡皮,什么都擦不掉,但什么都映不出来。

我们站在栏杆边。风不大,但很冷。二月底的北京,春天还没有来。风从北边吹过来,带着干燥的、冷冽的味道。

“沉鱼旋。”

“嗯。”

“你今天CF多少名?”

“一千八。”

“比我好很多。”

“嗯。”

“你不安慰我?”

她转过头看着我。天台上没有灯,只有远处城市的光污染把她的轮廓照得很淡。她的眼睛很亮,不是因为泪光,是因为光污染——那些从几十公里外射过来的、被大气层散射了无数次的、微弱的光,落在她的瞳孔里,变成了两个很小的、银色的点。

“你需要安慰吗?”

“……不知道。”

“那你需要什么?”

我想了很久。久到风把我手背上的温度全部吹走了,久到她的围巾在风里飘起来又落下去,飘起来又落下去。

“我需要一个人。”

“一个人?”

“一个能听懂我说话的人。”我看着她的眼睛。“一个我不用解释‘为什么我考了六千三还难过’的人。一个知道我从哪里来、知道我要去哪里的人。一个——”

我的手抬起来。不是我想抬的,是它自己抬的。它放在她的脸颊上。她的皮肤很凉,和北京冬天的风一个温度。

“一个让我在深夜里不会害怕的人。”

她没有躲。她的眼睛看着我,那双深棕色的眼睛里有一种光——不是泪光,不是灯光,是一种从里面向外照射的光。像太阳,但比太阳小,小到只有一颗瞳孔那么大。但它的光,足够照亮我。

“方铨铎。你知道你在说什么吗?”

“知道。”

“你知道这意味着什么吗?”

“知道。”

“你知道——”

“沉鱼旋。”我打断了她。

“嗯。”

“我喜欢你。”

风停了。不是真的停了,是那一瞬间,风的声音被某种更响的东西盖过了。心跳。不知道是谁的心跳,是我的,还是她的。

她看着我。看了很久,久到我以为时间停在了这一刻。

“你为什么现在说?”她的声音有一点哑。

“因为我怕以后没有机会说。”

“以后还有很多时间。”

“以后的时间,是用来写代码的。现在的时间,是用来喜欢你的。”

她的眼泪掉下来了。不是一颗一颗的,是一行一行。从眼角沿着鼻梁两侧往下流,流过脸颊,流过嘴角,滴在暗红色的围巾上,把围巾洇湿了一小块。

“你为什么哭?”我问。

“因为你选了一个最差的时间。”

“什么时间?”

“六千三百名的时间。自我怀疑的时间。天台上没有星星的时间。”她的声音在抖。“但你选了。所以我不需要星星了。”

她的眼泪还在流。我伸手去擦,她抓住了我的手。

“方铨铎。”

“嗯。”

“你知道我为什么换围巾吗?”

“你说你想换一个颜色。”

“不是。”她低下头,看着自己脖子上的暗红色围巾。“是因为你那天说,深灰色太暗了。”“你适合亮一点的颜色。”

我的手停在空中。那是省选前的一个晚上,我们在活动室里讨论一道题的最优解,她说她在用深灰色的围巾,我说“深灰色太暗了,你适合亮一点的颜色”。我说完就忘了。她记了整整一个月。

“沉鱼旋,你——”

“我喜欢你。”她抢在我前面说了这句话。

风又起了。把她的围巾吹起来,暗红色的围巾在风里飘着,像一面很小的、很亮的旗。没有星星的天台,两个人的心跳,比任何星星都亮。

我们靠在天台的栏杆上。她的头靠在我的肩膀上,围巾搭在我的手臂上,暗红色的,很软。她的头发蹭着我的脖子,和人大附中那个夜晚一样的触感,一样的温度。但那天晚上,她睡着了,手里攥着我的衣角。今天她没有攥衣角。她握着我的手,十指相扣。

“方铨铎。”

“嗯。”

“你从什么时候开始的?”

“从什么时候开始喜欢我?”

“嗯。”

我想了很久。

“从网吧的角落。你坐在那里,校服外面套着灰色卫衣,屏幕的光照在你脸上,你说‘如果你不是现在的你,你会是什么样’。那一刻,我的心跳了一下。”

“只有一下?”

“很多下。但第一下,我记得最清楚。”

她把脸埋进我的肩膀。“我也是。”

“你也是什么?”

“第一下。”

“什么时候?”

“你帮我调代码的那天。在食堂,你说我的代码写得很认真。不是‘写得好’,是‘写得很认真’。因为你知道,我写代码真的很认真。”

她的手握紧了一些。“没有人说过我认真。除了你。”

远处城市的灯一盏一盏地灭。凌晨三点,北京终于黑了。不是完全黑——光污染还在,天还是灰的。但比刚才暗了一些,暗到几乎看不到她的脸。但我不用看,她的温度在我手心里。

“沉鱼旋。”

“嗯。”

“明天还要训练。”

“嗯。”

“我们回去吧。”

“再待一会儿。”

“好。”

没有星星的天台。两个人的心跳。一条暗红色的围巾在风里飘着。我低下头,把脸埋进她的头发里。洗发水的味道——不是栗子味的,是另一种,更淡的,像雪。像冬天第一场雪落在地面上的味道——没有味道,但你知道那是雪。你也知道它过一会儿就会化,化成水,渗进土里,不见踪影,但它来过。

这个夜晚也会走。CF的排名会被下一场比赛覆盖,六千三百分会被遗忘。

但“我喜欢你”这四个字,不会。它会留在这里,在科技楼的天台上,在每一次风吹过围巾的时候,被重新听见。

二十

丛雨坐在活动室的折叠床上,双手撑在身后,两只脚晃来晃去。她的目光落在沉鱼旋那条搭在椅背上的暗红色围巾上,停留了很久,然后移到我脸上。我假装在看题,假装没有注意到那道目光的重量。但我知道她在看我。从CF炸掉的那个晚上开始,她看我的方式就变了一点——不是疏远,是一种更小心的、更克制的注视,像一个人站在玻璃柜前看一件易碎的展品,想看,但怕靠太近会留下指纹。

“方铨铎。”

“嗯。”

“你周末有空吗?”

“什么事?”

“没什么事。就是想问问。”她从折叠床上站起来,走到沉鱼旋的位置旁边,用手指碰了碰那条暗红色围巾的边角。动作很轻,像在确认某种东西的质地。“沉鱼旋,你周末有空吗?”

沉鱼旋从角落里抬起头。“有。”

“那你们出去走走吧。”丛雨的语气很随意,像在说“今天天气不错”。“天天待在活动室里,会发霉的。”

沉鱼旋看了我一眼。我没有说话。沉鱼旋也没有说话。丛雨站在我们中间,看看我,又看看沉鱼旋,忽然笑了。那笑容很短,但很真。“去吧。我替你们看活动室。”

周六早上,天气预报说晴。

我站在女生宿舍楼下等沉鱼旋。北京的春天还是不肯来,三月了,风还是冷的,但阳光很好。光秃秃的银杏枝丫在地上投下细密的影子,像一幅用铅笔画的速写。沉鱼旋从楼门口走出来,穿着一件浅灰色的薄大衣,里面是白色的高领毛衣。头发散着,发尾垂到腰际,在阳光下发着很淡很淡的光。围巾换了——不是暗红色那条,是新的,米白色的,很长,在脖子上绕了两圈,两端垂在胸前。

“你换围巾了。”

“嗯。那条暗红色的太厚了。今天暖和。”

她走到我面前,距离一臂。不远,不近。从人大附中的教室到科技楼的天台,从省选前的深夜到CF炸掉的凌晨,这条距离线她画了又擦,擦了又画。今天,她没有画。

“去哪?”她问。

“你想去哪?”

“不知道。你决定。”

我想了想。“去后海吧。湖边走走。”

“好。”

地铁上人不多。我们并排坐着,中间隔了一个座位的距离。她看着窗外,隧道的壁灯一盏一盏地闪过,在她的瞳孔里留下短暂的、白色的光痕。她的侧脸在车厢的灯光下很安静,睫毛很长,鼻梁很高,嘴唇微微抿着。阳光偶尔从地面上的路段透进来,落在她米白色的围巾上,把围巾染成很淡很淡的金色。

“方铨铎。”

“嗯。”

“你以前约会过吗?”

“没有。”

“我也没。”

然后就不说话了,但那沉默不是空白的。两个人的沉默和一个人的沉默不一样——一个人的沉默是空的,什么都没有,像一间没人住的房子;两个人的沉默是满的,所有的声音都不需要发出来,因为对方已经替你听到了。

出站的时候,她的手碰到了我的手。不是刻意的,是走路的自然摆动,指尖和指尖之间只有不到一厘米的距离。那个距离持续了大概两步。然后她把手收回去,插进了大衣口袋里。她没有看我的表情,我也没有看她的。但我看到她的手在口袋里攥成了拳头——不是因为冷,是因为刚才那一瞬间,某种东西差一点就越界了。

后海的湖面还结着薄冰。冰面上有裂纹,白色的,像一张被揉皱又重新展开的纸。柳树的枝条光秃秃的,垂在湖面上方,风一吹就晃,像一个人在犹豫要不要伸出手。

我们沿着湖边慢慢地走。我的步伐比她大,但我走得很慢,一直和她保持着并肩——不是平行,是微微错开的那种并肩,她的左肩在我右肩的前方。

“沉鱼旋。”

“嗯。”

“你冷吗?”

“不冷。”

“你的手在口袋里攥着。”

她低头看了一眼自己的口袋。“……习惯了。”

“习惯攥着?”

“习惯不伸手。”

她说完这句话,把手从口袋里抽了出来。她没有看我。她把手垂在身侧,手指微微张开,像一片刚从树枝上落下来的叶子,不知道风会把它带到哪里。我的手垂在身侧。两只手之间的距离,从一臂到半臂,从半臂到一拳。我的手背碰到了她的手背。不是握,只是碰。像两片叶子在风里偶然擦过,不知道是谁先靠近的。

她的手很凉。我的手很热。

我的手翻过来,手心朝上。她把手指放在我的手心里。一根一根的——先是食指,然后是中指,然后是无名指,然后是小指。最后是大拇指。她的手指很长,很细,指甲涂着透明的甲油,在阳光下反射出很淡很淡的光。我握住了她的手。她的手在我手心里,凉意从她的指尖传到我的掌心,又从我的掌心传回她的指尖。不是单向的,是循环的。

我们继续往前走。没有再说话。

湖边的长椅上坐着一对老人,老爷爷在喂鸽子,老奶奶在旁边看着,手里拿着一袋面包屑。鸽子不怕人,落在老爷爷的肩膀上、手上、头上。老奶奶笑出了声,笑声很大,在湖面上弹了好几下。沉鱼旋看着那对老人,停了一下脚步。

“方铨铎。”

“嗯。”

“你觉得,他们会在一起多久?”

“已经在一起很久了。”

“我是说——还会在一起多久?”

我看着她。她的侧脸在阳光下,轮廓柔和,鼻梁上有一道很小的、几乎看不见的光斑。阳光落在她的睫毛上,把每一根睫毛都镀成了金色。

“一辈子。”我说。

她没有问“一辈子是多久”。她只是把我的手握紧了一点。

午饭是在湖边的一家小馆子吃的。店面不大,装修很旧,但窗边的位置能看到湖。两碗炸酱面,一碟拍黄瓜,两瓶北冰洋。沉鱼旋把面拌了很久,不是不愿意吃,是她拌面的方式很认真——每一根面条都要裹上炸酱,每一块黄瓜都要分布均匀。她的筷子在碗里画圈,画得很慢,像在执行一个精度很高的算法。

“你拌个面都要这么久?”

“不拌均匀不好吃。”

“你写代码也是。每一行都要对齐。”

“代码不对齐不能跑。”

“面不对齐也能吃。”

她抬起头看着我。“面不对齐能吃饱,但不好吃。”她的嘴角微微动了一下。不是笑,是一种“我有我的道理”的表情,和她在活动室里争论某道题的最优解时一模一样。

北冰洋的瓶盖她拧不开。她拧了好几次,手指在瓶盖上打滑,最后把瓶子递给我。我拧开了,放在她面前。她喝了一口,橘色的汽水在她嘴唇上留下了一小圈淡淡的颜色,她用纸巾擦了,擦得很仔细。

“沉鱼旋。”

“嗯。”

“你为什么喜欢我?”

她放下北冰洋,看着窗外的湖。湖面上有人开始划船了,是小鸭子形状的脚踏船,黄色的,在灰色的湖面上很显眼。

“因为你是我见过的最认真的人。”

“我不是问这个。”

“我知道你想问什么。”她转过头看着我。“但我说不清楚。就像——你不知道为什么AC会让人高兴,但你就是高兴。不是因为你算出了那个复杂度,不是因为你写出了那个算法,是因为它对了。你就是对的。你是我的Accepted。”

窗外的阳光照进来,落在她米白色的围巾上。我看着她,她看着我。服务员端着一碗热汤从我们旁边走过,汤的热气在空中画了一道白色的弧线。那弧线断开的时候,我听到自己说——“你也是。”

下午三点多,天色忽然暗了。

不是那种慢慢暗的,是那种一瞬间,太阳被云遮住了,整个世界从彩色变成了黑白。风变大了,柳树的枝条从“在犹豫要不要伸手”变成了“被风吹得东倒西歪”。湖面上的冰发出细碎的声响,不是融化,是风在冰面上切出一道一道看不见的痕。

“要下雨了。”沉鱼旋抬头看着天。

话音刚落,第一滴雨落下来了。不是毛毛雨,是很大的、很重的一滴,砸在我手背上,凉意从那一小片皮肤扩散到整只手。然后是第二滴、第三滴、第四滴。雨落下来了。

我们跑进路边的一个亭子。不是公交站,是一个很小的、仿古的亭子,大概只有两三平米,中间有一张石桌,两把石凳。亭子的顶是木头的,雨打在瓦片上,声音不是“滴滴答答”,是“哗——”。因为雨太大了,密集到每一滴雨的声音都连在了一起,变成了一片持续的白噪音,像没有信号的电视机。

沉鱼旋靠在亭子的柱子上,大衣的肩头被雨淋湿了一小块。那块水渍在浅灰色的布料上慢慢扩散,像一个正在生长的岛屿。

“你淋湿了。”我说。

“没关系。”她伸手摸了摸肩膀上的水渍,“很快就干了。”

雨越下越大,湖面被雨点砸出无数个小坑,像一个正在WA的评测页面——每一滴雨都是一个错误,每一个错误都在提示你,你的代码有问题。但这里没有代码,只有雨。只有瓦片上的白噪音,只有两个人之间越来越近的距离。

“方铨铎。”

“嗯。”

“你听过‘雨翔’这个词吗?”

“没有。”

“是一个人的名字。”她看着亭子外面的雨。“我小时候认识一个人,叫雨翔。‘雨’是下雨的雨,‘翔’是飞翔的翔。雨水从天空落下来,落在地上,汇成河流,流入大海,蒸发成云,再落下来。每一次循环,都是一次飞翔。从天空到地面,是坠落。从地面到天空,是飞翔。”

她转过头看着我。“所以雨落不是结束。雨翔才是。”

亭子的顶有一道缝隙,雨水从缝隙里渗进来,一滴一滴地落在石桌上。水滴在石桌面上溅开,变成更小的水滴,落在她的手背上。她没有擦。她看着那些水滴在手背上汇聚、滑落、消失,然后又有新的水滴落在同一个位置。

“沉鱼旋。”

“嗯。”

“你知道我为什么喜欢你吗?”

她摇头。

“因为你是雨。不是下雨的雨,是‘行到水穷处’的那场雨。在我走到没有路的地方,你来了。”

雨还在下。亭子里很暗,不是因为没有灯,是因为雨把所有的光都吸收了。剩下的光只够看清她的脸。她的脸在雨光里很柔和,睫毛上挂着很小的水珠,不是眼泪,是雨水从亭子顶的缝隙里飘进来,落在她脸上的。

“方铨铎。”

“嗯。”

“你过来一点。”

我走近了一步。我和她之间的距离从一臂变成了半臂,从半臂变成了一拳。她伸出手,把围巾的一端解下来,绕在我的脖子上。米白色的,很长,绕在我脖子上刚好够打一个结。她的手指在我的颈侧停留了一下,体温透过围巾传过来,比雨的温度高很多。

“这样我们都不会冷了。”她说。

雨停了。

不是慢慢的停,是那种——你听到最后一声雨滴落在瓦片上,然后就没有然后了。安静从天空压下来,世界被洗过一遍,所有的颜色都变深了一个色号。湖面不再有坑,冰面上的雨水分不清是雨还是融化的冰。柳树的枝条在滴水,每一根都在滴,像一排排小小的、断了线的水帘。

雨停之后,我们往回走。

路是湿的,地砖缝隙里积着水,走上去会发出轻微的啪嗒声。她走在我右边,她的左手和我的右手之间——我们的手之间隔着一层编织物的温度和半厘米的空气。围巾的一端在她脖子上,另一端在我脖子上。米白色的,把两个人连在一起。不是绳子,是围巾。绳子是绑住的,围巾是可以解开的。但今天没有人解开。

“沉鱼旋,你的鞋湿了。”

“你的也湿了。”

“冷吗?”

“不冷。”

“你的手凉。”

“你的手热。”

集齐了所有的对话。不是废话——是这些废话堆在一起,垒成了一面很小的、很薄的墙,挡住外面的风,不让它吹进来。

地铁上,她靠在我肩膀上。不是睡着,是闭着眼睛,呼吸很轻。她的手在我手心里,手指交叉,十指相扣。CF的排名已经不重要了。六千三百名已经被这场雨冲走了,刷进了北京的下水道,流入了污水处理厂,变成了可以被再利用的水。不是蒸发,是不需要再被看见。

“方铨铎。”

“嗯。”

“你以后还会CF炸掉吗?”

“会。”

“你以后还会自我怀疑吗?”

“会。”

“你以后还会在天台上一个人发呆吗?”

“……会。”

“那我以后还去找你。”

她的手握紧了一点。地铁进站,风从隧道里涌出来,把她的头发吹起来,扫过我的脸颊。很痒,但没有躲。

回到学校的时候,天已经快黑了。

活动室的灯亮着。丛雨坐在里面,面前摊着一本《算法竞赛进阶指南》,书页停留在她很熟悉的那一章——动态规划。她抬起头看到我们,目光在围巾上停了一下。那条围巾一头在我脖子上,一头在沉鱼旋脖子上。她的目光没有闪躲,也没有停留太久。

“你们回来了。”

“嗯。”

“下雨了?”

“嗯。很大。”

“淋到了吗?”

“淋了一点。”

她从椅子上站起来,走到冰箱前,打开门,拿出两瓶水。一瓶农夫山泉递给沉鱼旋,一瓶可乐递给我。她拉开可乐的拉环,递给我的时候,手指碰到了我的手指。她的手指很热。

“喝吧。”

“谢谢。”

“不客气。”她走回自己的座位,坐下来,继续看书。

活动室里很安静。冰箱嗡嗡地响,电视待机灯亮着红色,三台电脑关着,键盘没有声音。沉鱼旋坐在角落,把围巾从脖子上解下来,叠好,放在书架最上层。她叠得很慢,每一条折痕都压得很平,边角对得很齐——像在处理一段需要被温柔对待的代码,每一行都仔细看,每一个bug都小心地修复,不急,不躁。

丛雨翻了一页书。书页的声音很轻,像雨停之后,树叶上最后一滴水落进积水里的声音。

活动室的门开着。走廊里的风灌进来,把白板上那行“NOI倒计时:146天”吹得微微晃动。数字在跳动,不是真的在动,是视觉暂留。

沉鱼旋抬起头看了我一眼。很短。然后她低下头,继续看书,嘴角微微动了一下——不是笑,是那种“你在那里,我知道了”的表情。

雨落,雨停,雨翔。

北京没有雨翔。北京只有雨,只有从天上落下来、砸在瓦片上、汇聚在下水道、流进处理厂、变成再生水、浇灌路边的银杏树的那套循环。但雨翔不在地面上,在诗句里。“行到水穷处,坐看云起时”——云起的那一瞬间,雨翔了。