明月何时照我还
好的不多说了,直接上:关注零修喵关注零修谢谢喵只有你们给我关注和赞才有动力啊...
春风渡我过OI山五部曲:(以下是以时间顺序排序)
- 轻舟已过万重山【@EastSnowLotus】
- 塔与少女【@EastSnowLotus】
- 落霞与孤鹜齐飞 【原创】【补充时间线版本】qwq
- 春风又绿江南岸【@EastSnowLotus】
- 明月何时照我还【原创】
UP主提醒您:这是一片
同文不错的文章,有些情节可以自行保存,文章没了就可惜了直接正文:
大一开学那天下着雨。
方糖拖着行李箱从出租车上下来,站在北大南门口,雨水顺着石碑的棱角往下淌。她抬头看了一眼那块刻着校名的石头,忽然觉得过去一年多的经历像一个很长的梦。行李箱的轮子碾过积水,溅起一小片水花,她低头看了一眼,没躲开,裤脚湿了半截。
她本来应该去清华的。NOI结束之后,她拿到了清华的保送资格。填志愿那几天,方糖坐在客厅的桌子前,面前摊着两所学校的材料,从下午坐到了晚上。喵爱说“你自己决定”,方铨铎靠在沙发上,像是在等她说话,又像是不敢替她说。她犹豫了很久,最后说:“我去北大。”
喵爱问:“为什么?”
方糖说:“离训练基地近。”
她没说的是,她想离那个人近一些。后来她才知道,那个人压根儿没来过北京,一直住在杭州西湖边上的一个小房子里。她以为距离能拉近什么,其实不能。但那时候她还不知道。
九月的北京还热着,潮闷闷的,跟杭州差不多。方糖拖着箱子找到宿舍楼,办了入住,进了房间。宿舍不大,四人间,已经来了一个人。那个女生坐在下铺,正往墙上贴一张海报,听到门响转过头来。
“你是方糖吧?”她笑着站起来,“我叫周茜,山东人。”
“方糖。”她也笑了。
周茜是那种第一眼就能让人放松的人,话多得像没关紧的水龙头,嗓门也大,笑起来整个走廊都能听见。她一整个下午都在说话,说自己从哪儿考来的,说她以前搞竞赛多苦,说她最喜欢吃哪个食堂窗口的麻辣烫。方糖大部分时间在听,偶尔应一声,周茜也不会觉得被冷落,自顾自地接下去。晚上方糖躺在窄小的床上,听着窗外断断续续的雨声,心想,大学大概就是这样的吧。
九月课排得很满。高数、线代、C语言、离散数学,还有一门通选课叫“大学写作”,方糖不知道为什么计算机系要学写作,但她也懒得换。她每天早上七点起床,背着书包在几栋教学楼之间来回走,路上全是人,挤得像春运的火车站,偶尔能碰到一两个训练营时期的面孔,大多叫不出名字,点个头就过去了。
军训刚结束那阵子,方糖收到了集训队发的消息,说十月有一场全国大学生程序设计竞赛,问她要报名不。她看着手机屏幕犹豫了十秒钟,回了一个字:“报。”
那不是选拔赛,不是省选,不是NOI,没有人在意她能不能拿牌。但方糖还是报了,说不上为什么,只是觉得如果不报的话,这一年好像就真的什么都没开始。
十月,宁嘎狗在图书馆门口碰见她。
其实是宁嘎狗先看到了她,发消息问她:“你在图书馆?”方糖说:“在。”他说:“我也在,你坐哪儿?”她说了位置,宁嘎狗过了几分钟就出现在她面前,手里抱着两本书,冲她扬了扬下巴。
“你瘦了。”他说。
“没有,胖了。”她说。
宁嘎狗在她对面坐下,翻开书,过了一会儿又抬起头:“你周末一般干嘛?”
“写作业,”方糖说,“你呢?”
“我也写作业,”他说,“但吃饭周末会过来。”
“你们还每周见?”
“每周。”他低头翻了一页书,语气很平常,像在说今天天气还行,“他说等我考研考去清华,就可以天天见了。”
方糖没有接这句话。她看着宁嘎狗低头看书的样子,想起去年在奶龙训练营的时候宁嘎狗也是这样坐在她对面,那时候他隔三差五就问她怎么追人,怎么让一个人注意到自己。现在他已经不用问这些问题了,因为他想要的就在那里,隔着一座城市的距离,每周一次地铁,每周一顿湘菜,每周一个“嗯”字。
方糖觉得这样也挺好的。
宁嘎狗忽然抬头:“对了,那个比赛你报名了?”
“嗯。”
“我也报了。”他说,“吃饭也报了。bunH2O说他也报。”
方糖忍不住笑了:“咱们四个又要凑一起了。”
“可不是嘛。”宁嘎狗合上书,盯着她,脸上带着一种追忆往事的神色,“奶龙难民收容所,卷土重来。”
十月底,比赛在清华那边举行。方糖起了个大早,坐地铁过去,在门口碰到了宁嘎狗和吃饭。吃饭还是那副万年不变的表情,手里攥着一本小册子,封面印着一些她看不懂的字,大概是某篇论文的缩写。宁嘎狗在他旁边站着,正在低头看手机,大概是在查比赛流程。看到方糖走过来,宁嘎狗挥了挥手:“来了啊。”
方糖点点头:“bunH2O呢?”
“他说他堵路上了,让我们先进去。”
三行两列,六个人一组。方糖和宁嘎狗还有吃饭分到了同一组,bunH2O被分到了另一组,隔着一条过道。比赛开始的时候,方糖看着屏幕上跳出来的第一道题,忽然觉得很熟悉。不是题目本身,是那种感觉,那种坐在电脑前盯着屏幕、脑子里飞快转动的感觉,那种她已经很久没有过的感觉。她敲了第一行代码,键盘声清脆,和周围的噼里啪啦混在一起,像一个很久没听到的曲子。
那天他们拿了第三名。不算特别好,方糖也不是很在意。但走出赛场的时候,宁嘎狗在门口站了一会儿,忽然说:“还挺有意思的。”
方糖说:“什么?”
他说:“比赛啊,很久没一起比了。”
方糖想了想,确实很久了。从NOI结束到现在,整整一年。她没有说话,只是看了一眼旁边的吃饭。吃饭正低着头看手机,大概是收到了什么消息,他的嘴角动了一下。方糖觉得,那一瞬间,时间好像回到了奶龙训练营的机房,回到了他们几个人坐在一起刷题的夜晚。
十一月,方糖收到了一条陌生号码的消息。
她盯着屏幕上的那行字看了很久,心跳漏了一拍。那个号码她已经很久没见了,久到她以为再也不会收到。她犹豫了很久,才回了一个字:“嗯。”那边沉默了一会儿,又发来一条:“北京冷吗?”
方糖看着那三个字,心里涌起一种说不清的感觉。“还行。”她回。
“多穿点。”
方糖盯着屏幕,打了几行字又删掉,最后只回了一个“好”。她没有问他是怎么拿到新号码的,也没有问他那封信后来怎么样了,没有问他还恨不恨她爸。她只是放下手机,躺回床上,看着天花板发呆。
那天晚上她梦到了奶龙训练营,梦到那个灰色头像,梦到天台上月光下他说“是你爸”。醒过来的时候天已经亮了,她的枕头湿了一小块。她不知道为什么会梦到这些,大概是白天收到那条消息的缘故。
十二月,集训队又打了一场比赛,这次规模更大,全国二十多所高校的队伍都来了。方糖坐在电脑前,看了看旁边的队友,是集训队里另外两个男生,她不太熟,但配合起来还算顺畅。
第一道题很简单,十分钟过。第二道题稍微难一些,花了四十分钟。第三道题卡住了,她盯着屏幕想了快一个小时,脑子里全是各种算法在转,像走迷宫一样,她知道出口在哪,就是找不到路。她深吸一口气,换了一个思路,又写了二十分钟,终于过了。
最后一道题他们没做出来。比赛结束的时候,方糖站起来伸了个懒腰,看到旁边的男生还在盯着屏幕,似乎在复盘。她没有打扰他,走出赛场,站在走廊的窗边看着外面。北京的冬天灰蒙蒙的,天空压得很低,不知道是阴天还是雾霾。
宁嘎狗从后面走过来:“多少名?”
“第九。”
“还行,”他说,“比上次进步了。”
方糖没有回应。她看着窗外那些光秃秃的树枝,觉得比赛这种东西,和以前好像不太一样了。以前她打比赛是为了进省队,为了NOI,为了那个必须赢的理由。现在她打比赛,好像只是为了证明自己还会写代码,还在往前走,还没有停下来。
但她也说不清楚,停下来有什么不好。
十二月末,方糖收到了一个包裹。寄件人那栏是空的,但地址她认得,杭州。拆开,里面是一条灰色的围巾,很厚实,没有卡片,没有说明,只有一条围巾。她把围巾拿出来看了很久,又放回盒子里。那天晚上她照常去图书馆自习,出门的时候在门口站了一会儿,回屋把那围巾围上了。
室友周茜看到她的新围巾,眼睛一亮:“哇,谁送的?”
方糖说:“一个朋友。”
周茜追问:“男的女的?”
方糖没有回答,拉了拉围巾,走出门去。外面的风很大,但她不觉得冷。那条围巾不知道是什么材质的,很软,贴着脸颊的时候有种说不清的温度,像是有人在很远的地方,隔着整个冬天,用一条围巾碰了碰她。
十二月二十四号晚上,宁嘎狗在群里问大家要不要一起跨年。方糖说:“行。”bunH2O说他也来。吃饭没有回消息,但宁嘎狗说“他来的”。方糖看着那条消息,觉得他们几个之间,已经不用再问“来不来”了。
那天晚上四个人在五道口的一家韩料店里坐着,bunH2O带了一个女生来,说是他同实验室的师妹。那女生不怎么说话,但笑起来很好看。宁嘎狗趁她去洗手间的时候压低声音问bunH2O:“什么时候的事?”bunH2O说:“一个月前。”宁嘎狗说:“你行啊你。”bunH2O说:“她先追的我。”宁嘎狗说:“你放屁。”bunH2O说:“真的,她看了我的博客。”宁嘎狗噎住了。
方糖坐在旁边,看着他们斗嘴,忽然觉得,这一切好像还没变。她低头喝了一口大麦茶,水是热的,隔着杯子传到手心。她想起一年前在奶龙训练营的时候,他们也是这样坐在食堂里,bunH2O在讲他的代码被老师夸了,宁嘎狗在偷偷看吃饭,吃饭在盯着碗里的米饭发呆。好像一切都变了,又好像什么都没变。
吃完饭走出店门的时候,北京的夜风灌进脖子,方糖拢了拢围巾。bunH2O和他师妹先走了,宁嘎狗和吃饭并肩走在前面,两个人的手牵着,隔着一只手套的距离。
方糖落在最后面,看着他们的背影被路灯拉长又缩短,觉得这个冬天好像也没那么冷。
一月,期末考试结束,方糖在宿舍收拾行李准备回家。周茜拉着她拍了一张合照,说“下学期见”。方糖笑着说“下学期见”。她拖着箱子走出宿舍楼的时候,地上已经铺了一层薄薄的雪,踩上去咯吱咯吱响。她站在门口看了一会儿,风灌进领口,她低头拉了拉围巾,那条灰围巾她没有带回去,留在了宿舍衣柜里。
回到杭州那天,喵爱和方铨铎在车站接她。喵爱一见面就说:“你又瘦了。”方糖说:“没有,胖了。”喵爱不信,晚上做了一大桌子菜,方糖吃了两碗饭。
吃完饭她坐在客厅里看手机,方铨铎从书房走出来,手里拿着一本书,在她旁边坐下。方糖瞥了一眼封皮,认得那本书,是那本算法导论。她问:“爸,你还在看这个?”
方铨铎说:“偶尔翻一翻,怕忘了。”他的声音很轻,像在说一件无关紧要的事。
方糖没有继续问,但她心里想的是另一件事,那个人也住在杭州,在他们同一个城市。
她不知道方铨铎知不知道这件事。
晚上她回房间之后,躺在床上,翻来覆去睡不着。凌晨两点多,她打开手机,找到那个灰色头像的对话框,打了一行字:“那条围巾,是你寄的吧。”发出去之后她就后悔了,但已经来不及了。第二天早上醒来,她看到屏幕上有一条新消息,很短:“嗯。”
方糖没有再回。
那年春节,铝の没有来家里吃饭。方糖注意到方铨铎偶尔会朝门口看一眼,像是在等什么人,但那个人一直没有来。年夜饭的时候喵爱做了很多菜,摆了一桌子,说“吃吧”。方铨铎拿起筷子,夹了一筷子菜,沉默地吃着。方糖看着他们,忽然觉得有些人的缺席,比在场更明显。但她没有问,她只是把那条灰围巾叠好放进了衣柜的抽屉里。
大一下学期开始之后,方糖的生活渐渐有了固定的节奏。每天上课、写作业、去图书馆、跟宁嘎狗他们吃饭。她偶尔还会参加一些编程比赛,没有以前那么拼命,但也不敷衍。那些比赛对她来说,成了一种延续,像是跟过去的一种连接。
三月,宁嘎狗过生日,他们几个人在学校附近的一家小馆子里吃饭。吃饭做了一件让所有人都没想到的事:他给宁嘎狗买了一个蛋糕,上面写着“生日快乐”四个字,字迹歪歪扭扭的,一看就不是店员写的。宁嘎狗看着那个蛋糕愣了好一会儿。他说:“你写的?”吃饭“嗯”了一声,然后低头继续吃饭。宁嘎狗没有说话,但他的耳朵红了。方糖坐在对面,看到那抹红从宁嘎狗的耳朵一直蔓延到脖颈。
吃完蛋糕之后,宁嘎狗忽然站起来,端起杯子说:“方糖,你知道今天为什么吃蛋糕吗?”方糖说:“你生日啊。”宁嘎狗说:“不是,是因为你。今天是我们第一次见面的日子。”
方糖愣住了。她完全不记得是哪一天了。宁嘎狗说:“三年前今天,你推开了303的门,问我是不是新来的室友。”他顿了顿,“当时你背着书包,头发有点乱,看起来像是跑了很远的路。”
方糖想起来了。那天她刚到奶龙训练营,拖着行李箱在走廊里找房间,推开门的时候,宁嘎狗坐在靠窗的床上,腿上放着一台笔记本电脑。阳光从窗户照进来,他转过头看了她一眼。那是他们第一次见面。她没想到宁嘎狗还记得那一天。
宁嘎狗又说:“方糖,谢谢你那天推开了那扇门。”
方糖低下头,端起杯子喝了一口水。她不知道该怎么接这句话,心里有点堵。
三月底的某一个傍晚,方糖在图书馆收到了一条消息:“我来北京了。”
方糖盯着那行字,心跳漏了一拍。她放下书,回消息:“你在哪儿?”那边说:“北大南门。”
她站起来,快步走出图书馆。走到南门口的时候,她看到一个人站在外面,穿着灰色大衣,头发比上一次见到的时候白了一些。他就那样站着,像一棵落了叶子的树。方糖走过去,在他面前停下来。
铝の看着她,先是愣了一下,然后笑了:“你长高了。”
方糖说:“没有,是你驼背了。”铝の笑得更深了。两个人站在南门口,风把路边的落叶卷起来又放下。铝の说:“我只是路过。”方糖没有拆穿他,她说:“那你路过得挺远的。”铝の没有说话。
沉默了一会儿,铝の开口了:“你爸他还好吗?”
“挺好的,”方糖说,“我妈也是。”
铝の点了下头,又把目光移开。方糖看着他那副欲言又止的样子,犹豫了一下,说:“你要不要进去坐坐?”铝の想了一会儿,摇摇头说:“不了,赶火车。”
方糖没有挽留。她看着他转身走了几步,然后叫住他:“陈叔叔。”铝の回过头。她说:“你住在杭州的事,我没有跟我爸说。”
铝の的表情没有什么变化,只是点了点头,说了声“谢谢”,然后转身走了。
方糖站在原地,看着他的背影越来越远,消失在路的尽头。她低下头,发现自己的手在抖。她不知道是因为冷还是因为别的。她在那里站了很久,风有些凉,她拉了拉袖子,转身往回走。回到宿舍,周茜问她去哪儿了,她说:“去吃了碗面。”
后来的日子又恢复了正常。上课、吃饭、写作业、去图书馆。偶尔和宁嘎狗他们聚一聚,偶尔收到铝の一条消息,很短,只有两三句话,问她最近在忙什么,有没有好好吃饭。方糖有时候回,有时候不回,他也不催,像一颗偶尔闪烁的星星,不会消失,也不会太近。
五月,宁嘎狗给方糖发消息,说他考研成绩出来了,过了清华的线。方糖说恭喜,他说还没复试呢,方糖说那你肯定能过。宁嘎狗发了一个笑脸,后面跟着一句:“以后就能天天见到吃饭了。”
方糖看着那行字,觉得这个人真是单纯,以为能见到就是终点。但她也说不出口,因为对于宁嘎狗来说,能见到就是终点。
那天晚上方糖一个人坐在图书馆里,旁边的人来来去去,她面前摊着一本书,但没有看进去。她看着窗外那些初夏的树叶,绿色很浓,像是要把整个夏天都吸进去。她想起很多事,奶龙训练营的夜晚,那个灰色头像,铝の站在南门口,背着光看不清表情。她想起他说“你长高了”的时候,那种语气像是她真的还在长大。可她已经很久没有长高了。
方糖低下头,重新把目光放回书上。书页上的字迹清晰又模糊,她翻了翻,看到自己之前划过的几行,又翻开另一页,继续往下看。
日子还在往前走。暑假的时候方糖回家待了几天,又回到北京参加集训队的暑期集训。宁嘎狗也来了,因为他的复试过了,九月就要来清华报到。吃饭还是那样,话不多,偶尔抬头看他们一眼,又低下头看他的论文。
七月中旬的一天,集训结束,大家收拾东西准备散场。方糖在走廊里碰到宁嘎狗,他正蹲在地上系鞋带,看到她过来,抬起头说:“晚上一起吃饭?”
方糖说:“好。”
他系好鞋带站起来,拍了拍手上的灰,忽然说:“方糖,你说咱们以后还能不能像现在这样?”
方糖想了想:“能吧,又不是见不到了。”
宁嘎狗笑了:“那行。”
他走了几步,又回过头:“对了,你那个陈叔叔……还联系你吗?”
方糖愣了一下:“问这个干嘛?”
“没什么,就是想知道你身边还有人关心你。”
方糖没有回答。她看着宁嘎狗的背影消失在走廊尽头,心想,这个人怎么总是一副在替她操心的样子。明明他自己的事还没搞清楚,明明他还在追一个只会说“嗯”的人。
但她没有说出来。她只是站在那里,看着外面那些被太阳晒得发白的树叶,觉得夏天还很漫长。她还需要很多时间才能知道,自己想要成为什么样的人。
八月底,开学了。方糖升上大二,搬了新宿舍,周茜搬去跟男朋友住了,她换了一个室友,是个不爱说话的女孩,安安静静的,方糖跟她说话的时候她会点头,不说她也不会主动开口。方糖没有特别在意,反正她大部分时间也不在宿舍待着。
开学第二周,她在一节课上认识了一个女生。那个人叫程雪,计算机系研究生,比她大两届。她坐在方糖旁边,借了方糖的笔记抄,抄完了还给她,说了句“谢谢”。方糖说“不客气”,然后两个人就开始有一搭没一搭地聊了起来。
程雪留着短发,戴一副银色细框眼镜,说话的时候喜欢微侧着头。她不是那种很热情的人,笑起来也是淡淡的,但她的目光有一种认真,像是每次看人的时候都在真正地看着。方糖很快就发现了这一点。程雪看她的时候,和大多数人不一样,不会掠过她的脸去看向别处,也不会像在评估什么,只是单纯地落在她身上。
她们加了联系方式,但很少聊天。后来在图书馆又碰到几次,程雪会冲她点一下头,然后找她旁边的位置坐下。她们各自做各自的事,不说话,但偶尔方糖抬头的时候,会发现程雪也在看她。程雪没有移开目光,只是笑了一下,像在说“我在这里”。
有一次,方糖结束集训之后顺路去买了杯咖啡,程雪也在那里。两个人端着咖啡站在路边,程雪说了一句:“你最近好像很忙。”方糖说:“还行,集训刚结束。”程雪哦了一声。方糖不知道她是不是在等自己多说几句,但当时她没有说太多,只是喝了口咖啡。
程雪也没有追问。她只是笑了笑,说:“那你好好休息。”
方糖看着她转身走远的背影,忽然有一种很奇怪的感觉,像是她刚才错过了什么东西,又像是有什么东西正要开始。
大二的秋天,方糖收到了一个新比赛的邀请,全国大学生程序设计竞赛,地点在南京。她本来不想去的,但集训队的教练说缺人,让她凑个数。她想了想,还是报了名。宁嘎狗也去了,他已经正式成为清华的研究生,平时很忙,但比赛还是挤出了时间。吃饭没有去,他说他有一个论文要交。但大家都知道,他只是不想出门。
比赛那天,方糖坐在考场里,看着屏幕上的题目,忽然觉得她不应该出现在这里。她不是当初的方糖了。省选、NOI、国家队,那些已经是过去的事,她已经不再用它们来定义自己。可是她还在写代码,还在做题,还在比赛。她不知道这算是一种重复,还是一种延续。
她交完最后一道题的时候,宁嘎狗已经在门口等了。他靠着墙,手里拿着一瓶水,看到她出来递了过去。方糖接过来,喝了一口,说:“谢谢。”
宁嘎狗说:“你觉得你今天打得怎么样?”
方糖想了想:“还行,第二题卡了一段时间。”
宁嘎狗说:“我第三题没做出来。”
“吃饭不在你就不会了?”
“他不在我就不会了。”
他说话的语气很平常,像是在陈述一件无关紧要的事情。方糖没有接话。她靠着墙,和他并排站着,看着走廊里来来往往的人,心里想着程雪那双落在她身上的眼睛。
那天晚上她回到北京之后,收到了程雪的消息:“比完了?”
方糖说:“嗯。”
“怎么样?”
“还行。”
程雪说:“那就好。”
然后就没有然后了。方糖看着那几句话,放下手机,没有回复。但那天晚上她很久才睡着,脑子里一直闪着程雪笑的样子,像是一盏灯,亮了一整个晚上。
十一月的一个傍晚,方糖和程雪在学校附近的路上散步。天气已经凉了,路两旁的银杏叶子落了一地,踩上去软软的。程雪走得很慢,偶尔停下来看看路边的树,像是要把每一棵都记住。方糖跟在她旁边,不知道该说什么。她们这样散步已经不是第一次了,但每次方糖都会不自觉地陷入一种很安静的状态,像是被风吹久了慢慢凉下来,又像是总算能停下来喘口气。
程雪忽然在一棵银杏树前停下来,说:“方糖,你记不记得我们第一次见面?”
“记的,你借我的笔记。”
程雪笑了:“那是我故意的。”
方糖愣了一下。程雪说:“我那节课带了笔记,我只是想找个借口跟你说话。”
方糖的心跳了一下。她不知道该说什么,只是看着程雪。程雪没有等她回答,继续往前走。她走了几步,回过头来看着方糖:“你最近有没有在想谁?”
方糖说:“有吧。”
程雪问:“谁?”
方糖想了想:“你。”
程雪沉默了一会儿,然后笑了。那笑容很轻,像是初雪落在树叶上那样轻。她伸出手,碰了碰方糖的手背,又收回去,说:“走吧,风越来越大了。”
方糖跟在她身后,心里的某个地方忽然变得柔软又确定。她不知道自己是什么时候开始在意程雪的,也许是从她借笔记的那一刻开始,也许更早,也许是她坐在图书馆里抬头时四目相对的那一刻。她只知道,当程雪问“你有没有在想谁”的时候,她没有犹豫,没有躲闪,也没有思考该怎么回答。
那场对话之后,她们依然像往常一样见面,没有确认任何关系,没有说任何明确的话。但她们开始肩并肩走得更近了,开始在一些不起眼的小事上为对方留着位置。宁嘎狗发现方糖最近不对劲,因为他发消息她总是隔很久才回。他问她:“你是不是谈恋爱了?”方糖说:“没有。”宁嘎狗说:“那你最近在忙什么?”方糖说:“没什么,就是有个朋友。”
宁嘎狗发了一串省略号。
后来有一天,方糖和程雪一起去超市买东西,程雪拿起一盒草莓放进篮子里,问方糖吃不吃。方糖说吃。程雪又拿了一盒。她们并肩站在货架前挑选东西的时候,方糖忽然有一种奇怪的感觉,像是她们已经这样过了很久了,像是她们不是才认识几个月,而是已经一起生活了很多年。她看着程雪的侧脸,看着她的手指划过那些包装袋,然后她说:“程雪。”
程雪转过头来:“嗯?”
方糖说:“我好像有点喜欢你。”
程雪愣了一下,然后笑了:“我知道。”
“你什么时候知道的?”
“从你第一次跟我说话的时候。”
方糖看着她的眼睛,觉得那句话像一颗石子,落进水里,荡开了一圈圈涟漪。
年底的时候,方糖带程雪去参加了宁嘎狗的生日聚会。宁嘎狗看到她俩进门时牵着手的样子,愣了好一会儿,然后说:“方糖,你……”
方糖说:“她是我女朋友。”
宁嘎狗张了张嘴,又合上,最后只挤出一句:“我靠。”
吃饭在旁边端着杯子,看了程雪一眼,又看了方糖一眼,说了一句:“挺好。”
那天晚上宁嘎狗喝得有点多,拉着方糖跑到阳台上,压低声音问她:“你什么时候……”方糖说:“就最近。”宁嘎狗说:“你爸妈知道吗?”方糖说:“不知道。”宁嘎狗看着她,像是想说什么又咽回去了。
方糖知道他要说什么。但她不想听。
寒假回家的时候,方糖没有跟喵爱和方铨铎提程雪的事。她不知道怎么开口,也不知道他们会是什么反应。方铨铎偶尔会问她最近有没有交新朋友,方糖说“有”,没有说别的。喵爱像是看出了什么,但没有追问,只是在方糖准备回北京的前一天晚上,坐在她床边,说了一句:“小糖,不管你喜欢谁,妈妈都支持你。”
方糖愣了一下,看着喵爱。喵爱拍了拍她的手,站起来说:“早点睡。”
门关上之后,方糖坐在床上,很久没有动。
回到北京之后,方糖和程雪一起跨了年。她们站在天台上看着远处的烟花,程雪靠着她的肩膀,说:“新的一年了。”方糖说:“嗯。”程雪说:“你许了什么愿?”方糖说:“不告诉你。”程雪笑了一下,没有再问。
烟花散去之后,四周安静下来,只剩下远处偶尔传来的风声。方糖低头看了看程雪垂下来的发梢,又抬头看了看远处那一片仍旧幽暗的天空,忽然觉得好像真的可以在新的一年重新开始。她说不出这个“重新”是指什么,可能是重新喜欢一个人,可能是重新相信自己能够被人长久地注视。
大三那年春天,她们搬到了一起住。房子很小,离学校不远,走路十五分钟。客厅里有一扇朝南的窗户,窗台上摆着程雪养的多肉。方糖每天早上起来第一件事就是给那几盆多肉浇水,程雪笑她说“你比我养得好”。方糖说“那你教我”。程雪就真的教她,告诉她要浇多少水、什么时候该晒太阳、什么时候该换土。
那是方糖第一次觉得,生活可以是一件很具体的事情。以前的她总是活在未来的某个目标里,活在下一场比赛里,活在还要拿到什么成绩的焦虑里。但现在她的生活被划分成了无数个细碎的瞬间——早晨七点的闹钟、窗台上的阳光、程雪在厨房里煮粥时升起来的白色热气。她忽然觉得这一切就够了。
三月,程雪拿到了一个海外交换的机会,要去半年。方糖送她去机场的时候站在安检口外面看着她的背影消失在人流中,没有哭,也没有说太多话。程雪回头看了她一眼,冲她挥了挥手,然后转身走了。方糖站在那里,很久没有动。旁边有人经过,行李箱的轮子碾过地面,发出咕噜咕噜的声音。她等到那声音也消失了,才低下头,慢慢转身往外走。
程雪走了之后,方糖的日子又恢复了某种意义上的“正常”。上课、写论文、去实验室,偶尔和宁嘎狗他们一起吃饭。宁嘎狗问她最近怎么样,她说“还行”。宁嘎狗说“你是不是想她了”。方糖没有回答,只是低头喝了一口水。
程雪有时会发消息过来,发一些她在那边的照片,有时候是教室的黑板,有时候是她住的街道,有时候是路边一只蹲着发呆的猫。方糖看到那些照片,心里总有一种很淡的暖意,像是她也在那边,隔着屏幕看到了程雪的日常。她有时候会回一两句,有时候只是保存下来,等着程雪下一次再发。
四月末的一个夜晚,方糖独自坐在窗前的书桌旁,外面的光线已经暗了下来,只剩远处几扇亮着灯的窗户。她正在改一篇论文的最后一节,忽然手机震了一下,是程雪发来的消息:“我下个月回来。”
方糖盯着那行字看了很久,然后回了一句:“我去接你。”
五月的阳光变得有点亮了,程雪回来的那天,方糖提早到了机场。她站在到达口,看着那些推着行李走出来的人,一个又一个,都没有她等的那个人。她等了一会儿,手机震了一下:“我到了。”她抬起头,看到程雪正拖着行李箱走过来。她瘦了一点,头发剪短了一些,但笑起来的样子一点都没变。
方糖走过去,站在她面前。程雪松开行李箱的把手,伸出手碰了碰方糖的手背,说:“你瘦了。”
方糖说:“没有,胖了。”程雪笑了,像她们第一次见面时那样。
回去的路上她们靠着窗户坐着,没有说话。阳光从窗外照进来,落在程雪的膝盖上,落在那件黑色外套的袖口上。方糖侧过头看着程雪的侧脸,她的眼睛微微眯着,像是在感受那一片温暖的光线。方糖忽然觉得,这就是她等了很久的“回来”。不需要太多语言,不需要解释,只是一个人安安静静地回到了她身边,那些分开的日子忽然就变得不那么重要了。
大三的秋天,方糖发现自己和程雪在一起之后,反而比以前更忙了。
不是因为感情消耗时间,而是因为程雪比她想象中更拼。那个会在窗台上养多肉、会穿着宽松睡衣在厨房里煮面的人,到了赛场上完全是另一副模样。她参加ACM竞赛,打区域赛,写代码写到凌晨两点,早上七点又能准时出现在实验室。方糖有时候会在小房子里的书桌旁看到她伏案睡着的背影,电脑屏幕还亮着,光标停在某一行代码的末尾,像一场还没有结束的对话。
方糖第一次亲眼看到程雪比赛,是十月中旬的北京站。
那是ICPC亚洲区域赛,北京赛区。方糖本来是作为观众去的。她坐在观众席最后一排,看到程雪穿着黑色连帽衫坐在电脑前,头发扎成低马尾,侧脸被屏幕光照亮。她旁边是两个男生,方糖不认识,但程雪和他们配合得很流畅,偶尔低声说一两句话,偶尔在纸上画几笔,偶尔靠回椅背盯着屏幕,像在等什么。
方糖看着她的样子,心跳快了一拍。那是她从来没有见过的程雪,不是那个会蹲在窗台前给多肉浇水的程雪,不是那个在厨房里把菜切得大小不一的程雪。是另一个版本的程雪,更锋利、更专注、更像一把被磨了很久的刀。
那天程雪所在的队伍拿了银牌。
方糖在赛场外等了半小时,人群散去之后程雪才走出来,头发有些乱,但眼睛很亮。她看到方糖,愣了一下:“你来啦?”方糖说:“我一直都在。”程雪眨了眨眼,没有追问她坐了多久,也没有说自己打得好不好。她只是走过来,把外套的拉链拉好,说:“走吧,我饿了。”方糖没有问她结果,她已经看到了。
她们在路边的一家小面馆坐下,程雪点了一碗牛肉面,方糖点了一碗清汤面。等面的时候程雪靠着椅背,闭了一会儿眼睛,像是耗尽了全部力气,终于可以歇一歇。方糖没有说话,只是安静地坐在对面。过了好一会儿程雪睁开眼,坐直了身子,笑了一下:“你是不是觉得我打比赛的时候特别凶?”方糖说:“是有点。”程雪说:“那你不怕我?”方糖想了想:“不怕。”程雪问为什么。方糖说:“因为你凶完还会回来煮面。”程雪笑了,用筷子敲了一下方糖的碗沿:“那我得练练厨艺了,不然凶完你跑了我怎么办。”
方糖低头吃面,没有接这句话,但她在桌子底下碰了碰程雪的膝盖。
后来方糖才知道,程雪那场比赛是带病打的。感冒了三天,没告诉她,连药都没吃,怕犯困影响状态。方糖听到之后沉默了很久,程雪坐在沙发上,像是察觉到气氛不对,凑过来碰了碰她的肩膀:“你怎么不说话了。”方糖说:“你下次生病要告诉我。”程雪说:“那如果比赛前一天呢?”方糖说:“那我也要知道。”程雪想了想:“好。下次告诉你。”
十一月,程雪的队伍又打了一场区域赛,这次是南京站。方糖本来想请假陪她去,但程雪说这次是团队内部的磨合赛,不带家属。方糖听到“家属”那两个字的时候微微愣了一下,程雪自己也意识到了,别过脸去:“反正你别来。”方糖笑了,说:“好,不去。”
那天程雪出发的时候方糖站在门口送她,程雪背着电脑包回头看她说了一句“等我回来”。方糖说“嗯”。她站在门口看着程雪的身影消失在楼道尽头,然后关上门,坐在书桌前写了一会儿代码,窗外的天色渐渐暗了下来,她抬头看了一眼窗外,发现天已经黑了,路灯亮了,程雪还没有发消息来。她打开手机看了一眼对话框,犹豫了一下,没有发出去。
晚上十一点,方糖收到程雪的消息:“拿了金奖。”后面跟了一个“耶”的表情。方糖看着那两个字,笑了一下,然后回了一句:“等你回来吃面。”程雪说:“这次我下面给你吃。”方糖盯着那行字愣了好一会儿,确认她没有打错字之后,没有回复。她只是把手机放在桌上,然后站起来去厨房烧了一壶水。窗外的夜风穿过秋天的树叶,沙沙作响。她忽然觉得,这个秋天比去年要暖和很多,也漫长很多。
十二月,程雪他们队伍打进了总决赛。那天晚上程雪坐在沙发上翻着赛程安排,一边看一边自言自语:“深圳,住三天,来回机票……”方糖坐在她旁边,听着她把那些数字一个一个念出来,没有打断她。程雪念完之后合上手机,侧过头问她:“你要不要一起去。”方糖说:“你让我去?”程雪说:“上次说了不带家属,这次没说。”方糖说:“那我考虑一下。”程雪用膝盖碰了碰她的膝盖:“你什么时候学会拿乔了。”方糖低头不说话了。
后来方糖还是去了。她坐在观众席的前排,看着程雪坐在赛场中央。这一次她的头发扎得很利落,侧脸被屏幕光照亮,手指在键盘上飞快地移动,旁边两个队友偶尔低声交谈,她偶尔点一下头,偶尔在纸上画几笔,偶尔靠回椅背盯着屏幕。方糖看到她的表情变化——从皱眉到舒展,从紧绷到放松,从迟疑到确定,细微得像窗外一片叶子被风翻过来。她不知道程雪做了多少道题,不知道她经历了多少次调试,不知道她在那些看不见的角落里熬过多少时间。她只知道那个此刻安静地坐在赛场中央的人,是她每天早上醒来时第一个想拥抱的存在。
总决赛的最后一道题,程雪卡了四十分钟。方糖坐在观众席上,手握成拳,看着程雪低头盯着屏幕,手指偶尔敲几个字,又删掉,再敲,再删。她旁边的队友也在写,三个人各自沉浸在自己的逻辑里,像三个走散的人各自找路,但目的地是同一个。方糖的心跳快了一拍,她想起那年奶龙训练营的深夜线上课,想起那个灰色头像,想起那个人说“卡住的时候就回到原点从最基础的地方开始想”。她不知道程雪会不会卡太久,她不知道程雪此刻在想什么,她只是希望她能找到那条路。
时间还剩二十分钟,程雪忽然停下手,盯着屏幕看了一会儿,然后开始飞快地敲字。她的动作很稳,没有犹豫,像一个人在黑暗中摸索了很久忽然摸到了一根绳子,然后毫不犹豫地顺着它往前走。方糖看着屏幕上的代码一行一行地跳出来,看到程雪的侧脸被屏幕光照亮,她最后按下提交键的时候屏幕中央弹出一个绿色通过的标记。方糖松了口气,发现自己的手掌被指甲掐出了浅浅的印痕,但她没有低头看。
比赛结束之后,程雪站在领奖台上,手里攥着奖牌,金色的,沉甸甸的。她站在队伍的最左边,笑容很淡,但灯光落在她身上的时候,她的轮廓在光里慢慢变得清晰,像是被光线重新描了一遍。方糖站在台下,拍了一张照片。那张照片拍得不算好,角度偏了一些,光线也暗了一些,但方糖没有删掉。她把那张照片存在手机里最常用的那个文件夹里,然后抬头继续看她。
晚上她们回到酒店之后程雪把奖牌放在床头柜上,脱了外套,靠着床头坐下来,说:“我以为最后一道题做不出来了。”方糖坐在她旁边,说:“但你做出来了。”程雪说:“因为我想到你说过的一句话。”方糖愣了一下:“我说过的?”程雪没有看她,只是看着窗外的夜色说:“卡住的时候就回到原点从最基础的地方开始想。”
方糖沉默了一会儿,然后低下头看着自己的手。她不知道程雪记得那句话,更不知道那句话是在哪一天哪个夜里哪个时刻说的。她只是随口说了一句,像在黑暗里扔了一颗石子,没想到程雪接住了它,还一路带到了赛场上。
程雪转过头来,看到方糖低着头,她伸出手指碰了一下方糖的耳垂:“你怎么不说话了。”方糖说:“没什么,就是觉得你挺好的。”程雪笑了:“你才知道啊。”方糖没有反驳。
那天晚上方糖做了很长的梦,但醒来之后没有记住。她只记得程雪的奖牌放在床头柜上,金属的表面折射着窗外路过车辆的灯光。方糖侧过头去看的时候程雪还在睡,她的睫毛很长,像是被晨光压着。方糖伸出手指碰了碰她的手指,程雪没有醒,但在睡梦中握紧了她的手。
回北京的高铁上方糖靠着窗看着窗外飞速后退的田野,程雪坐在她旁边,戴着耳机靠在椅背上,闭着眼睛像是在休息。方糖没有叫醒她,只是把窗边的遮光帘拉低了一点。程雪在睡梦中侧过头,靠在了她的肩膀上。方糖没有动,她靠着椅背看着窗外的阳光,那些金色的光斑在玻璃上游走,像是被人一把一把撒上去的,又像是它们原本就在那里,终于找到了可以落下来的地方。
方糖不知道今年的冬天会不会比去年更冷,也不知道明年的比赛程雪还会不会打,更不知道她们还能在这座城市里住多久。但她知道程雪会在她身边,会在那些看不见的地方记得她说过的某一句不起眼的话。那句话像是被风吹到了很远的地方,又被一只手捡起来握在掌心,带到了赛场上,带到了领奖台上,带回了她们的小房子里。
列车穿过一片田野的时候,方糖低头看了看程雪垂下来的手指,细瘦的,指甲剪得很短,指尖有一层薄薄的茧。那是敲代码的人的手,也是养花的人的手。方糖没有去碰它,只是看了很久。
她忽然觉得,这就是她想要的未来。不是某个具体的终点,而是她会一直记得这些细碎的、发光的瞬间,像是她走在一条很长很长的路上,回头看的时候发现路已经被灯光点亮了。那些灯是她自己开的,也是程雪替她留着的。
程雪拿下那枚金牌之后,整个人像被卸掉了什么重担。
回到北京的那天晚上,她靠着床头看了很久手机,然后忽然说:“方糖,我不想打比赛了。”
方糖正在书桌前改论文,听到这句话手停了一下。她转过头,看到程雪低着头,拇指在屏幕上划来划去,像在翻什么她自己也不想再看的旧东西。那姿态更像是一个等待被理解的人,而不是一个已经做出决定的人。方糖说:“你不是刚拿了金奖吗?”
“就是因为拿了。”程雪抬起头,“我为了这块牌子熬了三年,熬到感冒不敢吃药,熬夜熬到耳鸣,比赛前睡不着觉。”她顿了顿,“拿到的那一瞬间是很开心,但开心完了之后,我发现自己好像没什么想继续追的东西了。”
方糖没有说话,她把电脑合上,转过身面对着她。程雪靠在床头,头发散在肩膀上,灯光从侧面照过来,把她的一半脸藏在阴影里,像一幅还没有完成就开始褪色的画。方糖走过去坐在床沿,她的手搭在程雪的手背上,没有说话。
程雪说:“你会不会觉得我很没出息。”
方糖摇摇头:“不会。”
程雪侧过头看她:“那你怎么不说话?”
方糖想了一下:“我在想你说的‘没什么想追的了’是不是真的。如果只是累了,那就休息。如果是真的不想再碰比赛了,那就不碰。”
程雪低下头,过了一会儿才说:“不碰了。想停一停。”
方糖说:“好。”
那天晚上程雪睡着之后方糖关了大灯,只留了一盏床头灯。她坐在书桌前翻开一本旧书,翻到某一页的时候看到上面写着:“对的人也许不会出现,但春天每年都会来。”她不知道这句话是谁写的,也不知道它在那里放了多久。但她忽然想起了程雪刚才说的话——“想停一停。”她想了想,把书合上,关了灯,躺回程雪身边。
程雪的呼吸很均匀,像一只终于安顿下来的猫。
十二月下旬,她们一起回了杭州。
这是方糖第一次带程雪回家。高铁上程雪靠在窗边看着窗外,方糖坐在旁边,偶尔侧过头看她,看到程雪的下颌线和落下来的几缕头发,心里涌起一种很安静的情绪,像是心脏被一只温热的手轻轻托住了。列车穿过一片灰蒙蒙的田野,程雪没有转过来,但她把手从外套口袋里伸出来,放在方糖的手背上,停了一会儿。
方糖没有问她是不是紧张。因为她自己也在紧张。
到了杭州东站之后喵爱和方铨铎在出站口等着。喵爱先看到了她们,笑着招了招手,目光落在程雪身上。她看了方糖一眼,什么也没说,只是走上前来说了一句:“路上累不累?”程雪轻轻摇了摇头,说:“还好。”方糖注意到喵爱没有问“这是谁”,仿佛她早就知道程雪的存在。
方糖张了张嘴:“妈,她是……”
“我知道。”喵爱打断她,“你上次说交了个朋友,我猜到了。”
方糖不知道该说什么,转头看向方铨铎。方铨铎站在喵爱身后,手里拎着方糖的行李箱把手,脸上没什么特别的表情,但也没有移开目光。他看了程雪几秒,然后说:“走吧,车在外面。”没有多余的话,没有质疑,没有那句方糖在脑子里排练过很多次的“你确定了吗”。他只是把行李箱的拉杆收起来,拎着走了出去。
程雪轻轻碰了一下方糖的手背,像是在说:没事的。方糖看着她,忽然觉得那些积攒了很久的紧张,在这一刻一下子都松开了,像是被一根针轻轻戳破的气球,剩下的只是一层薄薄的皮,轻轻一碰就碎了。
晚上吃饭的时候喵爱做了很多菜,比过年还丰盛。方铨铎坐在主位上,话不多,偶尔抬头看一眼程雪,眼神里没有什么特别的内容,像在观察一个陌生人,但又没有那种陌路人才有的疏离感。程雪坐在方糖旁边,夹菜的时候不紧不慢,偶尔和喵爱聊几句,聊北京的天气,聊她学的专业,聊她最近在读的书。
吃完饭之后方糖坐在客厅里,方铨铎走过来,在她旁边坐下,沉默了很久,然后说:“她挺好的。”方糖愣了一下:“爸,你不问我……”方铨铎摇摇头:“你妈跟我说了一些。我也不是看不出来。”他顿了顿,“你喜欢就行。”
方糖看着他,不知道该怎么回答。方铨铎没有再看她,只是拿起遥控器换了一个台:“你长大了,自己选的路自己走。”方糖低下头,用手指轻轻摸了摸沙发缝里某处凸起的线头,然后说:“谢谢爸。”方铨铎没有应她,但方糖看到他的嘴角动了一下,那是一个很淡的弧度,几乎看不出来,但确实存在。
那天晚上方糖躺在自己的床上,程雪睡在她旁边。房间不大,窗帘没有拉严,月光从缝隙里渗进来,在墙壁上留下一道银白色的细线。方糖侧过身,看到程雪已经闭上眼了,睫毛在脸上投下淡淡的阴影。她伸出手指轻轻碰了碰程雪的鼻尖,低声说:“他们喜欢你的。”程雪没有睁眼,但她轻轻弯了一下嘴角,像是早就知道这件事。
后来她们在杭州住了三天。程雪跟着方糖去了西湖边走了半圈,又跟着她去了一趟学校旧址。方糖站在校门口跟她讲自己小时候的事,哪棵树下摔过跤,哪个拐角被喵爱骂过。程雪站在旁边安静地听,偶尔“嗯”一声,偶尔笑一下,偶尔伸出手指碰碰方糖的手背。
回北京的高铁上,方糖靠在窗边看着窗外飞速后退的景色,冬天的田野灰蒙蒙的,偶尔有一两棵光秃秃的树从视野里划过。程雪坐在她旁边,戴着一只耳机,闭着眼像是睡着了。方糖侧过头,看到她垂落在肩膀上的几根头发,在列车偶尔晃动的光线下轻轻发亮,像是落在她肩上的雪还没有化。方糖伸手轻轻把那根头发拢到程雪耳后,程雪没有动,但她的睫毛微微颤了一下。
回到北京之后日子又恢复了寻常。上课,论文,实验室,偶尔跟宁嘎狗他们一起吃饭。程雪没有再提比赛的事情,方糖也没有追问。她只是发现程雪开始把更多时间花在那些她以前没空做的事情上了,去图书馆看一些和专业课无关的书,买了一台二手相机傍晚出去拍照,周末早起去菜市场挑新鲜的水果。有时候方糖在书桌前写代码写到一半抬起头,看到程雪坐在沙发上翻书,或者看手机,或者什么都不做只是靠着窗户发呆,她会觉得那样的时刻比任何奖牌都要真实,比任何比赛胜利都要长久。
一月底的时候方糖参加了一场校际比赛,程雪没有去现场,但方糖回到小房子的时候看到桌上放着一杯还温热的奶茶,旁边贴着一张便利贴,上面写着“赢了就喝,输了也喝”。方糖拿起那杯奶茶,杯壁是温热的,隔着掌心传到她手心里。她没有急着喝,先在桌边坐下来,低头看了一会儿那张便利贴上的字迹,又抬起头看了看窗外渐渐暗下来的天。
三月,北大的玉兰开了。
她们在玉兰树下走了一圈,程雪抬头看了看那些白花,说:“以前我不知道你们学校有玉兰。”方糖说:“以前我也不知道你会来。”程雪低下头笑了一下,没有接这句话。她们继续往前走,走到那棵最高的玉兰树下的时候方糖停了下来,说:“程雪。”程雪也停下来。方糖想了想说:“你明年毕业之后打算留在北京吗?”程雪看着她,没有马上回答,像是在认真考虑她的答案会改变什么。
过了一会儿她说:“你在这里,我就留在这里。”
方糖没有说话,她只是走过去,站在程雪身边,抬起头看着那些白花。那天天气很好,天空很蓝,风吹过来的时候花枝轻轻晃动,像是有人站在很远的地方朝她们挥手。方糖想,这就是她想要的未来了,不是某个具体的形状,而是每一个可以被记住的春天。她低头看了看程雪的手,然后伸出手,握住它。程雪没有挣开。
程雪没有挣开。她只是低头看了一眼两只交握的手,然后抬起头,继续往前走。花枝在她们头顶摇晃,像在替她们数着什么没来得及说出口的话。那些花瓣落下来的速度很慢,像时间终于放慢了脚步。风穿过树梢的时候带着淡淡的清香,方糖低下头,看到程雪的影子落在她的影子上,她觉得这大概就是答案了。
五月,北京。
程雪毕业答辩结束那天,方糖去校门口接她。天气热起来了,梧桐叶子在头顶盖出一片浓绿,风一吹簌簌地响,像有人在不远处翻书页。
程雪从教学楼里出来的时候,方糖正在低头看手机,余光瞥见有人走过来,一抬头,看到程雪站在她面前。她穿了一件白裙子,头发扎成低马尾,阳光从叶子缝隙里漏下来,在她脸上留下一小块一小块的光斑。
“过了?”方糖问。
“过了。”程雪说。
方糖把手里那杯奶茶递过去。程雪接过来,喝了一口,站了几秒,然后说:“方糖,我毕业了。”
方糖看着她,没说话。她忽然意识到,程雪从今天开始就不再是学生了,不再有课表,不再有期末考试,不再有图书馆的座位。她走出那扇门之后,就要开始另一种生活。
她们并肩往校外走。方糖走得很慢,程雪也是。快到校门口的时候,程雪侧过头问她:“你晚上想吃什么?”
方糖说:“你定。”
程雪想了想:“那吃面吧。”
方糖说:“好。”
晚上她们坐在那家常去的小面馆里,程雪低头吃面,方糖坐在对面,看着她低头时垂下来的头发,忽然觉得时间过得真快。去年这个时候程雪还在打比赛,还在为那块金牌熬夜到耳鸣,还在感冒不敢吃药怕犯困。现在她毕业了,坐在一家寻常面馆里,面前的碗里漂着几片青菜和两片牛肉,一切看起来都那么普通,那么安稳。
“方糖。”程雪忽然抬起头。
“嗯?”
“我找到工作了。”
方糖愣了一下:“什么时候的事?”
“上周,面试过了,今天通知的。”程雪放下筷子,看着她,“在杭州。”
方糖的手停在碗边,有几秒没有动。她看着程雪的眼睛,确认她不是在开玩笑。程雪的表情很认真,但嘴角有一点压不住的弧度,像是在等她的反应。
方糖想了想:“你怎么不早点说?”
“怕影响我答辩的心情?”程雪歪了一下头,“也怕影响你写论文的心情。”
方糖低下头,看着碗里那些快要凉掉的面条。杭州。程雪找了一份在杭州的工作。她应该高兴的,那是程雪自己选的路,她应该支持她。可是心里有什么东西沉了一下,像是忽然发现自己站着的这片地面底下其实不是实的。
她抬起头,笑了一下:“那挺好的。”
程雪看着她,没有立刻接话。她拿起筷子夹了一片牛肉放到方糖碗里,声音轻下来:“方糖,我还没有说完。”
方糖看着那片落在她碗里的牛肉,没有说话。
程雪把筷子放回碗沿,双手交叠放在桌面上,像是要把接下来那句话认真地摊开在两个人中间:“我本来可以签北京的,但那个岗位,刚好在杭州,刚好和你家在一个城市。我去面试之前想过了,如果你不愿意,我就不去。但如果你愿意……我等你毕业之后,我们可以一起住。像现在一样。”
方糖听着程雪说话,她的声音不大,在面馆里其他桌的碗筷碰撞声中显得有点轻,但方糖每一句都听得清清楚楚。她看着程雪放在桌面上的手指,那些手指的指甲剪得很短,指节上有薄茧,是她敲了三年键盘之后留下的痕迹。
她伸手握住程雪的手指:“那你要等我一年。”
程雪笑了:“等得起。”
方糖低头看着碗里那片牛肉,没有抬头,但她的嘴角弯了一下。她说:“你找的房子要大一点。”
程雪说:“好。”
“窗户要朝南。”
“好。”
“要有厨房。”
“我煮面用不了那么大的厨房。”程雪说,“但可以有大一点的灶台。”
方糖终于抬起头,看着程雪。程雪也看着她,眼睛里有灯光,有窗外的夜色,还有别的什么——像是她们已经一起走过了很长一段路,而前面还有更长的路要走,她不怕。
离开面馆的时候外面下了一点小雨,空气湿润润的,路面的积水映出路灯的光。方糖和程雪并肩走在雨中,程雪没有带伞,方糖把外套脱下来顶在两个人头上。程雪笑她:“你这样还不如不打伞。”方糖说:“那你走快一点。”程雪说:“我不。”
她们就在那件外套下面慢慢地走着,雨水从两侧落下来,但头顶那一片是干的。方糖侧过头看到程雪的后颈,湿了一小截,雨水顺着发尾往下淌。她想伸手替她擦掉,但手里攥着外套的领口,腾不开手。
程雪像是察觉到她的目光,侧过头来,说:“你再看我我就不走了。”方糖说:“那你别走了。”
程雪笑了一下,没有回答,但她走得更慢了。雨水落在路面上的声音细密而均匀,像是有人在不远处摇着沙锤。方糖不知道这条路什么时候会走完,也不知道那件外套还能撑多久,她只知道这一刻她不想走快。
程雪毕业之后的那个夏天,方糖一个人留在北京。
程雪搬去杭州那天方糖送她去车站,在进站口站了一会儿。程雪拉着行李箱回头看了她一眼,说:“你放假就过来。”
方糖说:“好。”
程雪又说:“不用天天发消息,但也不能不发。”
方糖说:“知道。”
程雪看了她两秒,然后转身走进去了。方糖站在进站口外面看着她的背影越来越远,行李箱的轮子碾过地面的声音渐渐听不到了。她等到那声音完全消失,又站了一会儿,才转身往外走。
那天晚上回到小房子,空荡荡的。窗台上程雪养的多肉还在,方糖走过去给它们浇了水,看到其中一盆的叶片边缘有一点发黄,不知道是水浇多了还是晒少了。她拿出手机给程雪发了条消息:“那盆多肉有点黄了。”过了几分钟程雪回了:“你是不是又浇多了。”方糖说:“没有。”程雪说:“你肯定浇多了。”方糖没有反驳,她放下手机,坐在窗台前看着外面渐渐暗下来的天。
程雪走了之后,日子安静了很多。方糖继续上课,写论文,去实验室。偶尔和宁嘎狗他们吃饭,宁嘎狗问她最近怎么样,她说“还行”。宁嘎狗说:“程雪走了你不习惯吧。”方糖没有回答,她低头喝了一口水。
七月底,方糖放暑假,坐高铁去了杭州。程雪在车站接她,瘦了一些,头发剪短了一些,但还是那副笑起来就让人安心的样子。她们一起回了程雪新租的小房子,不大,但窗户朝南,厨房的灶台比她们在北京的那个大一些。方糖站在客厅里转了一圈,发现窗台上摆着那盆多肉,就是她之前说叶片发黄的那一盆,叶子已经绿回来了,健康地舒展着。
“你把它带过来了?”方糖问。
“怕你养死。”程雪说。
方糖没有回嘴。她站在窗台前,看着那盆多肉在阳光下泛着柔和的绿色,忽然觉得这个陌生的房间好像有了一点点熟悉的气息。
八月,方糖带程雪又回了一趟自己家。喵爱做了一大桌子菜,方铨铎还是话不多,但吃饭的时候给程雪夹了一块排骨。方糖看到了,没有说破,只是低头继续吃自己的饭。饭后程雪和喵爱坐在客厅聊天,方铨铎去阳台浇花,方糖站在厨房门口看着他们,外面的天已经暗下来了,屋子里亮着暖黄色的灯。
晚上方糖躺在自己房间的床上,程雪睡在她旁边,窗帘没有拉严,月光从缝隙里渗进来。方糖侧过身,看到程雪的睫毛在脸上投下淡淡的阴影,她的呼吸很均匀。方糖没有叫醒她,只是安静地看着她。她觉得很多话不需要说出来,比如谢谢你来这里,比如谢谢你愿意等,比如我其实很庆幸那天在图书馆你坐到了我旁边。
九月的北京,秋天来了。方糖升了大四。课程少了很多,大部分时间都在写毕业论文。程雪在杭州工作,每天按时上班下班,周末偶尔会拍一些照片发给她,有时候是办公室窗外的一朵云,有时候是路边的一只猫,有时候是她煮的面条上漂着的一片青菜。
方糖有时候回消息很快,有时候隔很久才回。程雪不催,偶尔她忙到很晚才打开手机,会看到程雪发来的最后一条消息是一张图片,上面是她新养的一盆薄荷,叶片翠绿,沾着水珠。配文只有两个字:“好养。”
方糖盯着那张照片看了一会儿,保存下来,然后回了一句:“比你养的那盆多肉好养?”程雪秒回:“你闭嘴。”方糖笑了一下,把手机放在桌上,继续写论文。
十月,宁嘎狗和吃饭也搬到了一起住。吃饭在清华的实验室读博,宁嘎狗已经毕业留校做行政。方糖有时候周末去找他们蹭饭,宁嘎狗在厨房忙活,吃饭坐在客厅看论文,偶尔抬头看了一眼厨房的方向,然后又低下头。方糖坐在沙发上看着他们,觉得有些东西变了,但那种变化是往好的方向走的,像是水缓慢地漫过石头,让它们变得更圆润、更安静。
十一月中旬,程雪来北京出差,待了三天。方糖去酒店找她,程雪穿着外套坐在大堂沙发上看手机,看到方糖推门进来,抬头笑了一下:“你瘦了。”方糖在她旁边坐下:“胖了。”程雪收起手机:“每次都这么说。”方糖没有回答。她们坐在大堂的沙发上聊了一会儿天,聊程雪最近的工作,聊方糖的论文进度,聊那盆薄荷又长了几片新叶子。然后程雪说:“你明天有没有空?”方糖说:“有。”程雪说:“那我们出去走走吧。”
那天她们沿着学校后面的那条路走了很久。银杏叶子已经落了大半,地上铺了厚厚一层金色,踩上去沙沙作响。程雪走得很慢,偶尔停下来看看路边的树。方糖走在她旁边,没有说话,但走路的节奏不自觉地慢了下来,像跟着程雪的呼吸在调整自己的步伐。她忽然想起去年,也是秋天,也是这条路,程雪对她说“方糖,我好像有点喜欢你”。那时候她觉得这句话像一颗石子落进水里,荡开了一圈圈的涟漪,她不知道那圈涟漪会扩散到哪里去。现在她知道了。
“程雪。”
程雪停下来,回过头看她。
方糖站在一片金色的落叶中间,背后是那些光秃秃的枝丫和远处灰蓝色的天空。她说:“等你下次再来北京的时候,我就毕业了。”程雪说:“那我下次来帮你搬家。”方糖说:“好。”程雪又说:“你的东西不多吧?”方糖想了想:“你走之后,没什么多的了。”程雪愣了一下,然后笑了。那笑容是方糖见过的最轻也最暖的笑,像是一整个秋天都被装进了那几秒里。
程雪出差结束回杭州那天,方糖去送她。她们站在火车站门口,程雪拉着行李箱,方糖站在她面前。阳光从她们头顶照下来,把两个人的影子拉得很短,几乎叠在一起。程雪说:“你别瘦了。”方糖说:“你别老吃面。”程雪说:“我下面给你吃还不好吗?”方糖没有接话,她只是往前走了一步,轻轻抱了一下程雪。很短,像是一片叶子从枝头落下来的时间。然后她松开手,退后半步,说:“路上小心。”
程雪看着她:“你也要毕业顺利。”
方糖点头。
程雪拉着行李箱走进去了。她的背影在人群中越来越远,越来越小,最后消失在安检口的拐角。方糖站在那里,等到人群渐渐散开,等到广播声换了好几遍,等到手机震了一下,是程雪发来的消息:“上车了。”她低头看了一眼,把手机收起来,转身往外走。
她走出车站,外面阳光很亮,风有点冷,但不刺骨。她裹了裹外套,沿着路慢慢往前走。她觉得,这一年很快就会过去,等她毕业之后,杭州就会变成她可以去的地方。
那不是归途,但那是她想去的方向。
好,我接着上次的故事继续写。一万字,慢慢来,不赶。
方糖毕业那天,北京下了场小雨。
早上醒来的时候窗外灰蒙蒙的,雨水顺着玻璃往下淌,把外面的树和楼都模糊成一片。她躺在床上看了几分钟天花板,才想起来今天是什么日子。
她坐起来,换好衣服,把学士服叠好放进袋子里。宿舍里没什么东西了,大部分行李前两天已经寄回了杭州。桌上只剩一台电脑、两本书、一个水杯,和窗台上那盆程雪留下的多肉——程雪临走前说带回去养,结果走的时候忘了,方糖也没提醒她。
手机震了一下,是程雪的消息:“下雨了,你带伞了吗?”
方糖回:“带了。”
程雪:“毕业典礼几点?”
方糖:“十点。”
程雪:“那我九点五十给你发消息。”
方糖没有问她发消息干什么,她只是把手机揣进口袋,拎着学士服出了门。
毕业典礼在体育馆里举行。方糖坐在台下,听着校长讲话、院长讲话、学生代表讲话,掌声一阵接一阵,她鼓了几下掌,觉得手掌有点发麻。她低头看了一眼手机,九点五十分,程雪的消息准时弹出来:“抬头。”
方糖愣了一下,抬起头,在人群中找了一圈。体育馆很大,坐满了人,她看不清楚每一张脸。但她的目光扫到二楼看台的时候,停住了。程雪站在栏杆后面,穿着灰色外套,正在朝她挥手。她旁边还站着一个人——宁嘎狗,也在挥手,笑得露出一排牙齿。
方糖盯着他们看了好几秒,然后低下头,嘴角弯了一下。她给程雪回了一条消息:“你怎么来了。”
程雪回:“我说了等你毕业。”
方糖把手机放回口袋,抬起头继续看台上的讲话。她不知道程雪什么时候来的,不知道她坐了多久的车,不知道她是怎么找到位置的。她只知道程雪站在那里的样子,像是一棵她很久以前种下的树,终于长到了她能看到的高度。
毕业典礼结束后,方糖从体育馆里出来,程雪和宁嘎狗在门口等她。宁嘎狗先开口:“方糖,毕业快乐。”他说完递过来一束花,不大,白色的雏菊,用牛皮纸包着。方糖接过来:“谢谢。”宁嘎狗又说:“吃饭在实验室没来,但他让我带句话。”方糖问:“什么话?”宁嘎狗说:“他说,恭喜。”
方糖等了几秒:“没了?”
“没了。”
“那你怎么不让他多说两句?”
“他说多了就不是他了。”宁嘎狗笑了一下,“你还不了解他吗。”
方糖没有反驳。她转头看向程雪,程雪站在旁边,手里没有花,也没有礼物,只是安安静静地看着她,像所有想说的话都藏在那个目光里了。方糖说:“你也没有花?”程雪说:“没有,但晚上请你吃饭。”方糖说:“那行。”
中午她们三个人在学校附近的一家小馆子吃了饭。宁嘎狗还是那么话多,从毕业讲到工作,从工作讲到吃饭最近在写的一篇论文,说那篇论文已经投了顶会,再过两个月就有结果了。方糖一边听一边吃,偶尔插一两句。程雪坐在她旁边,安安静静地吃饭,偶尔夹一块鱼放到方糖碗里。方糖没有抬头,但也没有把那块鱼夹回去。
吃完饭宁嘎狗先走了,说实验室还有事。方糖和程雪站在小馆子门口,太阳已经出来了,把地上的水渍晒得发亮,空气里有一股雨后泥土的气味,闷闷的,但不难闻。方糖低头看了看手里那束雏菊,花瓣上还挂着水珠,不知道是雨水还是保鲜的水。
程雪说:“你什么时候的火车?”
“明天下午。”
“那今天还有一整天的时间。”
方糖想了想:“你有什么安排?”
程雪指了指她怀里的花:“先帮它找个花瓶。”
她们回了方糖的宿舍。宿舍已经没什么东西了,床板上只剩一张凉席,桌上那盆多肉还在。程雪进门看到那盆多肉,愣了一下:“你没带回去?”方糖说:“忘了。”程雪说:“你就是懒得养。”方糖没有反驳。
程雪从柜子里翻出一个空的玻璃瓶——之前装果酱的那种,洗干净了放在角落——灌了水,把那束雏菊插进去,放在书桌上最靠里的位置。阳光从窗户照进来,落在白色的花瓣上,整间空荡荡的宿舍忽然有了一点点不一样的颜色。方糖靠在门框上看着程雪的动作,她低头调整花枝的角度,手指轻轻拨弄了一下其中一朵,把它的朝向转正了一点。方糖看着她的动作,忽然想起很多年前,也是这样一个午后,她们在图书馆第一次真正说话,程雪侧着头看她,嘴角带着一点淡淡的笑意。那时候她不知道这个人会陪她走多久,现在她知道了。
“程雪。”方糖忽然开口。
程雪没有回头:“嗯?”
“你去年说的那些话,还作数吗?”
程雪的手停在花枝上。她没有马上回答,像是需要一点时间来确认方糖指的是哪一些话。然后她转过头,看着方糖:“哪一些?”
方糖想了想:“就是那句,你说你等我毕业之后,我们可以一起住。”
程雪看着她,目光像风停下来时的叶子,缓缓找到了落点:“作数。”
方糖没有再说话。她只是站在那里,看着程雪站在书桌前,阳光从她身后照进来,把那束雏菊的影子拉得很长,拉到了方糖的脚边。她低头看了一眼那道影子,觉得她走了很长很长的路,终于走到了一扇门前。那扇门开着,门里面有人等她。
那天下午她们在校园里走了一圈。方糖带着程雪去了她平时不去的地方,那栋楼背后的那条小路,那片很少有人去的草地,还有那个她偶尔会一个人坐着发呆的石凳。程雪每到一个地方都会停下来看一看,像在记住每一个角落。
走到图书馆门口的时候,方糖停住了脚步。那是她们第一次真正说话的地方,不是借笔记那次,是后来有一天她坐在靠窗的位置,程雪走过来坐在她旁边,两个人谁都没说话,各自看了两个小时的书。那天的阳光也是这样的,穿过玻璃落在桌面上,把书页上的字晒得微微发暖。那时候方糖还没有意识到,那是一种“我在你身边”的意思。直到很久以后她才想明白,程雪选那个位置不是偶然,她早就注意到了她,只是用最安静的方式坐了下来。
方糖侧过头看了程雪一眼,程雪正在看图书馆门口那块石碑。她的侧脸被阳光照亮,睫毛在脸上投下浅浅的阴影。方糖没有打扰她,只是安静地站在旁边。她忽然觉得,有一个人愿意用这样安静的方式走进你的生活,是一件非常幸运的事。
晚上她们去了一家胡同里的小火锅店。店面不大,灯光暖黄,墙上贴着一些旧海报。方糖和程雪面对面坐着,中间是一锅红汤,热气腾腾往上冒,把两个人的脸都熏得微微发红。
程雪夹了一片肉放进锅里,翻了几下,捞出来放到方糖碗里。方糖没有客气,低头吃了。程雪又夹了一片,这次放进了自己碗里。
她们吃了一会儿,程雪放下筷子,端起杯子喝了一口水:“方糖,你有没有想过,你毕业之后想做什么?”
方糖想了想:“写代码吧。”
“在哪写?”
“不知道。”
程雪没有追问。她把杯子放回桌上,手指沿着杯沿慢慢转了一圈:“我明年有一个机会,可以外派到上海。”
方糖抬起头看着她。
程雪的语气很平常,像是在说今天天气不错:“不是长驻,半年。公司那边有一个新项目,需要人过去搭一个技术架构。我问过了,半年之后可以申请调回杭州。”
方糖看着她的眼睛,确认她不是在试探什么:“你想去吗?”
程雪想了想:“想去。但也看你。”
“看我什么?”
“看你愿不愿意来上海看我。”
方糖低下头,看着锅里还在翻滚的红汤。热腾腾的蒸汽模糊了她的视线,她觉得那种蒸汽很暖和,像是有人在很远的地方煮着一锅汤,等她过去。她夹了一块豆腐放进嘴里,嚼了一会儿,咽下去,然后说:“上海不远的。”
程雪看着她:“不远。”
“高铁一个多小时。”
“嗯。”
“那你想去就去。”方糖抬起头,“我周末可以去看你。”
程雪没有说话,但她在桌子下面伸过脚,轻轻碰了一下方糖的鞋尖。方糖没有躲开。
回到宿舍的时候已经九点多了,外面的天已经完全暗下来了。方糖坐在书桌前,那束雏菊还在瓶子里,花瓣在台灯下泛着柔和的白光。程雪坐在她旁边的椅子上,靠着椅背看手机,偶尔划两下屏幕。
方糖忽然说:“我明天就走了。”
程雪放下手机:“我知道。”
“那这间宿舍……”
“我后天走。”程雪说,“你走了之后我帮你把窗户关好,把电闸拉掉,然后把你那盆多肉带回杭州。”
方糖忍不住笑了:“你记得就行。”
程雪看着她,目光里有一种很轻的认真,像月光落在一个安静的角落里:“我记得住。”
第二天早上方糖醒得很早。她收拾好最后几样东西——电脑、充电器、那本翻过很多遍的旧书。程雪已经醒了,正靠在床头看手机,看到她坐起来,侧过头说了一句:“醒了?”
“嗯。”
“那去吃早饭吧。”
她们在食堂吃了最后一顿早饭。方糖要了一碗粥,一个茶叶蛋,程雪要了一屉小笼包。食堂里人不算多,零零散散坐了几桌,有人背着书包往外走,有人靠在椅背上打哈欠,看起来和任何一个普通的早晨没有任何区别。方糖低头喝粥的时候忽然觉得,这大概就是告别的样子,不需要特别盛大,不需要多说很多话,就是一顿寻常的早餐,吃完之后各自走向不同的方向。
吃完早饭方糖回宿舍拿了行李,程雪送她去地铁站。在地铁口站了一会儿,方糖拉着行李箱,程雪站在她对面。阳光已经出来了,照在两个人身上,把影子拉得很短。
程雪说:“到了给我发消息。”
方糖说:“好。”
程雪说:“你那个多肉,我已经收好了。”
方糖说:“你记得浇水。”
程雪说:“不会养死的。”
方糖看着她,没有再说话。她本来想说什么的,但那些话在嘴边转了一圈,又落回了肚子里。她只是往前走了一步,轻轻抱了程雪一下,然后松开,转身走进地铁站。她没有回头,但她知道程雪一定还站在那里看着她的背影。
地铁来了,方糖上了车,找到位置坐下。车厢门关上的那一刻,她透过窗户看到站台上已经没有人了。她低头看着自己的手,行李箱的拉杆还在手心里攥着,有些凉。手机震了一下,是程雪的消息:“上车了吗?”方糖回:“上了。”程雪说:“那我也回去了。”
方糖看着那两条消息,把手机收起来,靠着椅背,看着窗外飞速后退的隧道。列车轰隆隆地往前开,她不知道以后的路会通向哪里,但她知道在这个世界里,有一个人的手机里存着她的号码,有一个人的窗台上种着她留下来的一盆多肉,有一个人的夏天会留出几天给她。
回到杭州那天,喵爱和方铨铎在家里等她。她推开门的时候喵爱正围着围裙在厨房里忙活,听到门响探出头来:“回来了?给你炖了排骨汤。”方糖把行李箱拖进房间,换了一身衣服,走到客厅的时候方铨铎正坐在沙发上看电视,看到她出来,冲她点了下头,像是用这个动作说“回来了就好”。
晚上吃饭的时候喵爱问了很多问题,问毕业典礼怎么样,问有没有拍照,问那些同学怎么样了。方糖一一回答,没有提程雪去了毕业典礼的事。她不是不想提,是还没想好怎么提,那件事像一颗还没有完全落定的珠子,在自己心里转了几圈,还没有找到应该放下的位置。喵爱也没有追问,只是又给她盛了一碗汤。
吃完饭方糖回到自己房间,躺在床上,盯着天花板发了很久的呆。房间还是原来的样子,书桌、衣柜、窗台,和她离开的时候几乎一模一样。窗外传来几声虫鸣,夏天的声音,不紧不慢,像是在替她数着日子。
手机震了一下,是程雪发来的一张照片。照片里是那盆多肉,已经放回杭州窗台上了,阳光照在叶片上,泛着一层柔和的绿色。程雪的配文只有两个字:“安顿好了。”方糖看着那张照片,觉得那盆多肉比她养的的时候精神多了,叶片饱满地向外张开,像一只伸懒腰的手。她没有回那张照片,但她在心里说了一句谢谢。
七月初,方糖开始投简历。她翻了一晚上的招聘网站,把那些符合她专业的岗位一个个点开看,但真正点进投递页面的没有几个。她不知道自己在犹豫什么,也许是不知道想去哪里,也许是不知道离开学校之后自己还能不能像以前那样专心致志地写代码。程雪有时候会在微信上问她:“投了没?”方糖说:“在投。”程雪说:“你别只投杭州的。”方糖愣了一下,没有回答。
月底的时候她收到了一家杭州本地的科技公司的面试通知。岗位是后端开发,公司在城西,距离她家坐地铁四十分钟。她犹豫了一下午,最后还是回了邮件说“可以”。
面试那天她穿了一件白衬衫,提前半小时到了公司楼下。楼不高,灰色玻璃幕墙,门口种着一排修剪得很整齐的冬青。她在楼下站了一会儿,给程雪发了条消息:“我到楼下了。”程雪回:“别紧张。”方糖说:“没紧张。”程雪说:“那你进去吧。”方糖收起手机,推门走了进去。
面试的过程比她想得顺利。技术面问了一些算法题,她答得不算完美,但还算流畅。HR面聊了薪资和入职时间。最后一轮是部门主管面试,那人看起来四十多岁,戴眼镜,穿着格子衬衫,聊到最后他说了一句:“你之前搞竞赛?”方糖说:“是。”他点了点头说:“难怪手速快。”方糖没接话。
走出公司的时候阳光很亮,晒得她眯起眼睛。她在门口站了一会儿,给程雪发了条消息:“面完了。”程雪秒回:“怎么样?”方糖说:“不知道,等通知。”程雪说:“你肯定能过。”方糖看着那四个字,没有回。她抬头看了看那栋灰色玻璃幕墙的楼,觉得这里以后可能会是她的日常,打卡上下班,写代码,改需求,开会。和她过去那些年打比赛的日子不一样,但好像也不是什么坏事。
过了三天,她收到了录用通知。她给程雪转发截图的时候,程雪回了一连串的“恭喜”,后面跟了一个烟花的表情。方糖看着那些烟花,觉得这个人的高兴比她自己的还要多,像是她拿了什么奖似的。
八月中旬,方糖入职了。第一周她几乎都在看文档、配置环境、熟悉项目代码。办公室比她想象中安静,大家戴着耳机各写各的,偶尔有人站起来倒水,偶尔有人在小会议室里对着白板比划。方糖坐在自己的工位上,看着屏幕上那些密密麻麻的代码,觉得和当年在奶龙训练营里看的那些没什么两样,只不过旁边的人不再是一起刷题的朋友了。
她有时候会想起宁嘎狗,想起吃饭,想起奶龙训练营那些夜晚键盘声响成一片的机房。那些人现在散落在不同的城市,做不同的事情,但偶尔还会在群里冒泡。bunH2O上周发了一张他养的金毛的照片,问大家好看吗,宁嘎狗说“狗比你上镜”,bunH2O发了一串省略号。方糖看到那些消息的时候笑了一下,然后继续写代码。
程雪每个月会从杭州来上海出差,或者方糖周末坐高铁去杭州找她。她们之间的见面变成了一种固定的节奏,像潮水一样按时来按时退,但每一次潮水退去之后,方糖都会觉得心里那一片海岸被冲刷得更平整了一些。程雪的公寓不大,但收拾得很干净,那盆多肉摆在窗台上,已经长出了好几片新的叶子,比在北京的时候大了整整一圈。方糖第一次看到的时候愣了一下:“你把它养这么大了?”程雪说:“我养东西比你养得好。”方糖没有反驳,因为她确实把一盆薄荷养死了。
九月下旬的一个周末,方糖坐在程雪的客厅里看书。程雪在厨房煮面,热气从锅里升起来,沿着抽油烟机的边缘慢慢散开。方糖放下书,走到厨房门口,靠着门框看着程雪的背影。程雪穿着宽松的灰色T恤,头发扎成低马尾,正在往锅里下青菜。
方糖说:“你什么时候学会煮面的?”
程雪没有回头:“上大学就会了。”
“我不是那个意思。”
程雪停下动作,转过头看她:“那你是什么意思?”
方糖想了想:“你以前煮面的时候会放很多葱,现在不放了。”
程雪愣了一下,低头看了一眼锅里的面,然后说:“因为你不爱吃葱,我记得。”
方糖没有说话。她靠着门框,看着程雪把那锅面盛进碗里,两碗,一碗多一点,一碗少一点。程雪把多那碗放在左边的位置,那是方糖通常坐的位置。方糖走过去坐下,低头看着那碗面,碗里漂着几片青菜和两片牛肉,没有葱花,和程雪以前煮的完全不一样了。
她低头吃了一口,面还是那个味道,普通但温热。程雪在她对面坐下,没有说话,低头吃自己的那碗。窗外的天色正在暗下来,暮色从窗户渗进来,把整个客厅染成一种柔和的灰蓝色。方糖吃到一半,抬头看了程雪一眼,程雪正在低头喝汤,她的下巴线条在暮色里显得比平时更柔和一些。
方糖忽然开口:“程雪。”
程雪抬起头:“嗯?”
“你明年那个外派,什么时候走?”
程雪放下碗:“十二月底。”
“那还有三个月。”
“嗯。”
方糖低下头,看着碗里剩下的半碗面,汤已经快要凉了:“我周末可以去看你。”
程雪没有回答。她只是在桌子底下伸出脚,轻轻碰了一下方糖的脚踝。方糖没有躲开。
十月中旬,杭州的秋天开始深了,路两旁的银杏叶子一天比一天黄。方糖有一天下班之后,没有直接坐地铁回家,而是沿着公司旁边那条路慢慢走了一段。她很少这样走,平时都是下了班直接往地铁站走,脚步快得像还在赶比赛。但那天她不知道为什么就想走慢一点,像是有什么东西在催她慢下来。
路边有一棵很大的银杏树,叶子已经全黄了,风一吹簌簌地往下落。方糖站在那棵树下看了几分钟,拿出手机拍了一张照片,发给程雪。她配文说:“你什么时候来看这棵树?”
程雪回得很快:“你站在树下拍张照,就当我看过了。”
方糖说:“那你也要站在树下拍一张发给我。”
程雪说:“好。”
第二天方糖就收到了程雪发来的一张照片。照片里是一棵银杏树,叶子黄得很均匀,比杭州的那棵更大一些。照片的角落里能看到一段黑色的袖口——程雪穿着那件灰色外套。方糖把那张照片存了下来,和自己拍的那张放在同一个相册里。那本相册里还有很多别的照片,程雪拍的猫、程雪煮的面、程雪窗台上那盆越长越大的多肉。有时候她翻看那些照片,会觉得它们像是某种刻度,标记着她和程雪之间的时间是怎么一点点变长的。
十一月的一个晚上,方糖在公司加班。项目临近上线,整个组都在赶进度,会议室里的白板写满了技术方案,茶水间的咖啡机已经被用空了两轮。方糖坐在工位上,盯着屏幕上那行报错信息已经看了快二十分钟,脑子里像塞了一团毛线,找不到线头。她把代码又过了一遍,看不出问题在哪,又不知道该从哪里开始改。
她拿起手机,翻到程雪的对话框,打了一行字又删掉,又打了一行又删掉。最后她发了一条:“你睡了吗?”程雪秒回:“没。你还在公司?”方糖说:“嗯,卡在一段代码上了。”程雪说:“说说看。”
方糖把那段代码的功能大致描述了一遍,程雪那边安静了几分钟,然后回了一长段话:“你查一下那个函数的返回值类型是不是变了。我之前也卡过类似的问题,调试了半天发现是接口改了文档没更新。”方糖盯着那段话看了一会儿,按照她的思路重新查了一遍,果然在接口文档的角落里发现了一行更新注释。她改完那行代码,报错消失了。
她没有立刻回复程雪,只是看着屏幕上那段能跑的代码,觉得心里有什么东西松了下来,像是拧了很久的瓶盖终于被打开了。她拿起手机,给程雪发了一句:“好了。谢了。”程雪回了一个“嗯”字,没有多问。
方糖看着那个“嗯”字,忽然想起很久以前,奶龙训练营的对话框里,那个人也是这样回她的。一个字,不多不少,但你知道他在。她把手机放在桌上,关了电脑,收拾东西出了办公室。外面已经全黑了,路灯亮着,风不大但很凉。她站在公司门口裹了裹外套,抬头看了一眼夜空,看不到星星,只看到一片深不见底的暗蓝色。
十一月末,方糖请了三天假去上海看程雪。她买了周五下午的高铁票,到上海的时候天已经快黑了。程雪在车站接她,穿着那件灰色外套,头发被风吹得有点乱。方糖走过去的时候程雪伸出手碰了碰她的袖子:“你瘦了。”方糖说:“没有,胖了。”程雪说:“你每次都说胖了。”方糖没有反驳。
她们坐地铁回程雪的公寓,路上人不多,方糖靠着车厢壁站着,程雪站在她旁边,两个人的肩膀偶尔碰到一下。方糖侧过头看到程雪的耳廓被站台的灯光照得发亮,像一片薄薄的贝壳。她没有说话,只是把目光收回来,落在自己握着扶手的指节上。
程雪的那盆多肉又长大了,叶子从原来的淡绿色变成了一种更深的绿,像是吸收了整整一个夏天的阳光。窗台上还多了一盆小薄荷,和方糖养死的那盆是同一个品种。方糖站在窗台前看了很久,转过头问程雪:“你什么时候买的?”程雪说:“上次你说你养死了一盆,我就买了一盆,帮你证明不是你的问题。”方糖愣了一下:“那是什么问题?”程雪从厨房探出头来:“是北京的水质不行。”
方糖笑了。她很少笑出声,但那一刻她在程雪的客厅里笑了一下,不大,但足够让程雪从厨房里走出来看她一眼。程雪看到她站在那里笑,歪了一下头,像是想问她笑什么,但最后没有问。她只是走回厨房,继续切菜。
那天晚上她们坐在客厅的沙发上看了半部电影,不知道是谁选的片子,方糖看到一半就不太记得剧情了。她靠着沙发扶手,程雪靠在她旁边,她的肩膀贴着方糖的胳膊,安静得像一只休息的猫。方糖低头看到程雪的睫毛在台灯下投出淡淡的阴影,她的呼吸很轻,像是也在慢慢入睡。
方糖没有叫醒她。她只是维持着那个姿势,安静地坐在那里,听着窗外偶尔传来的一两声车笛,觉得这个夜晚很轻、很薄、很透明,像是可以被一整片月光晒透。
十二月,程雪要走了。
方糖知道这件事已经很久了,但她一直没去认真想“要走”这两个字到底意味着什么。直到有一天程雪在微信上发来一张机票截图,说“订好了,28号飞”。方糖盯着那张截图看了很久,回了一个“好”字。
12月27号,方糖请了半天假,坐高铁去了上海。她在程雪的公寓门口站了几秒才敲门,程雪来开门的时候正在收拾行李,客厅里摊着一个打开的行李箱,衣服叠了一半堆在旁边。程雪说:“你先坐,我把最后几件收完。”方糖没有坐下,她站在客厅里看着程雪蹲在行李箱旁边叠衣服,把那件灰色外套折得很整齐放进去,又放了一本书进去,又放了一个充电器进去。
“你什么时候回来?”方糖问。
程雪没有抬头:“合同上说半年。”
方糖想了想:“半年很快。”
程雪停下手里的动作,抬起头看着她:“方糖,你要是觉得半年很长,你告诉我。”
方糖看着她,没有回答。她走过去蹲在程雪旁边,伸手帮她把那件叠好的灰色外套拿出来重新叠了一遍,又放回去。程雪看着她叠衣服的动作,嘴角微微动了一下:“你叠得比我好。”
方糖没有接话。她继续帮程雪整理行李,把那本书换了个方向放进去,把充电器的线绕好塞进侧袋。她们蹲在行李箱旁边,谁都没有说话,只有衣服摩擦的窸窣声。窗外的天色在慢慢暗下去,房间里的光线变淡了,方糖的侧脸被暮色染成一种柔和的灰蓝色。
程雪把行李箱拉上拉链,站起来,走到窗边站了一会儿。方糖也站起来,站在她旁边。她们并肩看着窗外,外面的城市已经亮起了灯,无数个窗户里透出暖黄色的光,像是整座城市都在准备过夜。
程雪说:“方糖,我不在的时候,你记得吃饭。”
方糖说:“你也记得。”
程雪侧过头看着她:“我那盆多肉,你帮我养。”
方糖想了想:“我帮你养。”
“别浇太多水。”
“知道。”
“也别浇太少。”
“知道。”
程雪看着她,没有再说话。方糖也没有说话。她们站在窗前,窗外是上海绵延到天边的灯火,不知道哪一盏是为她们亮着的。
第二天方糖送程雪去机场。她们到了出发大厅,程雪把行李箱的拉杆拉出来,转过身看着方糖。方糖站在她面前,想了一下,伸出手指碰了碰程雪的手背。程雪低下头看了一眼那只手,然后抬起头说:“我到了给你发消息。”
方糖说:“好。”
程雪拉着行李箱走进去。她的背影在人群中越来越远,安检口的队伍挡住了她一半的身影,她回头看了一眼,冲方糖挥了一下手。方糖也挥了一下手。然后程雪转回去了,走进了安检口,消失在那道门后面。
方糖站在出发大厅里,听着广播声一遍遍地响,看着周围来来往往的人推着行李箱快步走过。她在那里站了好一会儿,直到手机震了一下,是程雪发来的消息:“过了安检了。”方糖低头看着那行字,打字:“那你路上小心。”发完之后她收起手机,转身往外走。
她走出航站楼,冬天的风迎面扑过来。她裹了裹外套,沿着路往外走。她不知道这半年会有多长,也不知道程雪回来的时候会不会瘦了,更不知道那盆多肉自己能不能养好。她只知道,程雪走的方向,和她以后要去的地方,是同一条路。
她坐上了回去的地铁。列车启动的时候,窗外的灯光开始往后滑。她靠着窗,看着那些光变成长条又变回点,觉得这个冬天才刚刚开始。冬天总是很长的,但她知道它会过去。
一月。二月。三月。
方糖像往常一样上班、下班、写代码、改需求。偶尔加班到很晚,偶尔周末去杭州看爸妈。那盆多肉被她带回了自己的出租屋,摆在窗台上,每天出门前看一眼,确定没有浇多也没有浇少。程雪偶尔会发消息过来,有时候是图片,有时候是语音,有时候是简短的一两句话。她们像两根被风吹得很远的线,各自飘着,但线的另一头还系在对方手里。
四月初的一个晚上,方糖收到程雪的一条消息:“我下个月回来。”
方糖看着那五个字,把手机放下,又拿起来,回了一个字:“好。”
她看着窗外,外面的天黑透了,但路灯亮着。她想起去年程雪走的时候,她们站在窗前看着外面的灯火,那时候她不知道半年后会是怎样。现在她知道了,半年后程雪会回来,那盆多肉还活着,窗台上的薄荷也长得不错。她没有再回答,但她在心里说了一句“等你回来”。
那天晚上她睡得很好。窗台上那盆多肉在月光下泛着淡淡的光泽,像一个小小的、安静的承诺,正在默默地生长。
四月,杭州的春天来得刚刚好。路边的樱花已经开了大半,风吹过去的时候,花瓣像雪一样落下来,铺在人行道上薄薄一层。方糖每天上班路过那条路,偶尔会抬头看一眼,但大部分时候她低头看着手机,或者想着当天要改的代码,那些花也就那样过去了。
四月中旬的一个周末,方糖去参加了一场技术沙龙。活动地点在城西一个共享空间里,进门的时候有人在签到台上放了一排矿泉水,方糖拿了一瓶,找了个靠后的位置坐下。她本来不常来这种活动,总觉得一群人坐在那里听人讲技术方案,不如自己对着屏幕敲代码来得实在。但那天她刚好没什么事,群里又有人在转发,她看了一眼主题,跟自己最近在做的项目有点关系,就报了名。
沙龙开始之后,方糖听了半个小时,偶尔低头记两笔。台上的讲者语速不快不慢,PPT做得干净利落,内容也扎实,方糖听着听着就不自觉坐直了一些。讲到某一个技术细节的时候,讲者说了一句:“这个优化方案我参考了librenullptr2014的一篇博客,写得非常好,推荐大家去看。”方糖听到那个ID的时候愣了一下,觉得有点眼熟,但又想不起来在哪见过。
中场休息的时候,方糖站起来去茶水间接水。她站在饮水机前等水烧开,身后有人走过来。她听到那个人对旁边的人说了一句:“帮我拿一下杯子。”声音不低不高,带着一点鼻腔共鸣,像是感冒还没好透。方糖没有回头,她接了水转过身的时候,和那个人打了个照面。
那个人比她高半个头,戴着一副银色细框眼镜,头发剪得很短,穿着一件深蓝色的卫衣,胸前印着一行看不清的小字。他手里拿着一个保温杯,正低头拧盖子。方糖侧身让了一下,他从她旁边走过去接水。方糖往前走了一步,忽然想起那个ID,转过身:“不好意思,问一下,你认识librenullptr2014吗?”
那个人愣了一下,转过头看着她。他脸上没什么表情,但目光在她脸上停了两秒:“我就是。”
方糖也愣了一下。她本来只是随口问一句,没想到正主就在眼前。她说:“哦,我刚才听讲者提到你写的博客。写得挺好的。”她说完这句话之后觉得有点尴尬,像是找了一句很平常的客套话,但对方似乎没有觉得她在客套。
他拧好保温杯的盖子:“哪一篇?”
方糖想了想,她其实没怎么看过他的博客,只是听说过这个名字:“……数据压缩那篇?”
他点了点头:“那篇是去年写的。”
方糖见他接了话,觉得自己也不能就这样走了,就问了一句:“你今天来是听还是来讲?”他说:“听。不太喜欢讲。”方糖笑了一下,没再说什么。她端着水杯走回座位,继续听下半场。那人坐在前排右侧,离她不近不远,偶尔侧过头和旁边的人说一句什么,声音很轻,听不清。
沙龙结束之后,方糖收拾东西准备走。她走到门口的时候,看到那个人正站在签到台旁边低头看手机。她本来想直接走过去,但脚步不知道为什么慢了下来。她走到他旁边的时候,他抬起头看了她一眼,像是犹豫了一下,然后开口:“你也是做后端的?”
方糖说:“对。”
他说:“那加个好友吧。”
方糖说:“行。”
他们加了微信,备注名改成了“林霜-技术沙龙”。方糖扫了一眼他的头像,是一张白底黑字的图片,上面只有“null”三个字母。她没太在意,收起手机,冲他点了下头,推门走了出去。
那天晚上回家之后,方糖把林霜的微信点开看了一眼。朋友圈没有内容,头像还是那张“null”。她想了想,没发消息,把手机放在桌上,去洗澡了。她没觉得这个人会和她有什么交集,技术沙龙里加的人太多了,大部分加完之后再也没说过话。她以为林霜也是其中之一。
但第二天中午,她收到了一条消息。是林霜发来的,只有一句话:“你那篇博客我看了。写得挺好的。”
方糖盯着那行字看了几秒,想起自己确实有一篇很久以前的博客,写的是分布式缓存的一致性哈希优化,发在某个技术社区上,阅读量不高,评论也只有两条。她没想到林霜会翻到那篇。
她回了一句:“谢谢,那篇挺久的了。”
林霜说:“内容不过时。”
方糖看着那三个字,不知道该回什么。她想了想,回了一个“嗯”字。消息发出去之后她觉得有点冷淡,又加了一句:“你也在做这块?”林霜回:“算是,最近在搭一个数据平台。”然后他发了一张架构图过来,灰色底,蓝色线条,画得很清楚。方糖点开放大看了看,发现结构和她做的项目有些相似,于是回了一句:“你这个地方为什么不用消息队列?”林霜回得很快:“试过,延迟太高了。”
那天中午他们聊了大概二十分钟。没有闲聊,大部分是在说那张架构图的细节。方糖一边吃饭一边打字,饭凉了她也没注意。聊到最后林霜说:“你在杭州?”方糖说:“对。”林霜说:“我也是。”然后他没有再说别的。
方糖放下手机,低头扒了一口凉了的饭,觉得这个人的沟通方式有点奇怪。不是不好,是太直接了,像是把所有的废话都过滤掉了,只留下有用信息。但她也没有太在意,毕竟只是技术交流。
接下来的几天,林霜偶尔会发消息过来,频率不高,两三天一次。每次都是和代码相关的问题,有时候是一段代码让她看,有时候是一个技术方案让她给意见。方糖一开始回得还算客气,后来发现他是真的在问问题,不是客套,就也认真回了。她发现林霜写代码的习惯很严谨,注释写得很全,变量命名风格统一,边界条件都会考虑到。她有一次回他消息的时候顺口说了一句:“你写代码挺干净的。”林霜回:“废话。”方糖看着那两个字愣了一下,然后笑了一下。她知道他是认真的,不是在怼她。
四月末的一个周末,方糖在家里写代码。她收到林霜的消息:“你吃小龙虾吗?”方糖看着那行字,觉得这个人切换话题的方式真的很突兀。她说:“还行。”林霜说:“那晚上一起吃。”方糖说:“你请客?”林霜说:“嗯。”方糖想了想,打字:“行,地址发我。”
她不知道为什么要答应。她和林霜算不上熟,只是技术交流过几次,见过一面。但她那天刚好没什么事,一个人在家待了一整天,也确实不想再对着屏幕敲代码了。她换了一身衣服,出了门。
林霜选的店在城西的一条小巷里,招牌不大,门口摆着几盆绿植,看起来像是开了很久的老店。方糖到的时候林霜已经在了,坐在靠窗的位置,面前放着一壶凉茶,正在看手机。看到她推门进来,他放下手机抬了一下手,算作打招呼。方糖走过去在他对面坐下。
“你点了吗?”她问。
“等你来点。”林霜把菜单推过来。
方糖翻开菜单,小龙虾的选项密密麻麻,口味有七八种。她看着那些名字,挑了两种:“这个十三香的,还有这个蒜蓉的。”然后她看向林霜:“你能吃辣吗?”林霜说:“能。”方糖又加了一个麻辣的。
等菜的间隙,两个人有一搭没一搭地聊了几句。方糖问林霜是做什么的,他说在一家数据公司做基础架构。方糖问他是哪一年毕业的,他说两年前。方糖算了算,比自己高一届。她又问他是不是一直在杭州,他说不是,本科在南京,毕业之后来的杭州。
“你呢?”林霜问。
“我去年刚毕业,北京回来的。”
“为什么回来?”
方糖想了想:“想回来。”
林霜没有追问。他拿起那壶凉茶给方糖倒了一杯,又给自己倒了一杯,然后放下茶壶,靠回椅背,像是在等什么。方糖低头喝了一口茶,觉得这个人的沉默和他说话的时候一样,都很干净,不让人觉得尴尬。
小龙虾端上来的时候,方糖看了一眼那三盘满满的红壳,然后低头看了看自己的手。她在心里估算了一下剥虾的速度,觉得这一顿大概要吃很久。她伸手拿起一只,还没开始剥,林霜说:“你放那。”
方糖愣了一下:“什么?”
林霜戴上手套:“我剥。”
方糖看着他,确认他不是在开玩笑:“你剥?”
“嗯。”
“你自己不吃?”
“吃,但先帮你剥。”林霜已经拿起了一只虾,开始拆壳。他的动作很熟练,像是做过很多次,虾壳在他手里被完整地拆下来,露出完整的虾肉,放到旁边的空盘里,然后他拿起第二只。方糖坐在对面,看着他拆了五六只之后,终于开口:“你不用全剥。”
林霜抬起头看了她一眼:“那你帮我剥一只。”方糖觉得自己被将了一军,但她还是戴上手套拿起了一只虾。她剥得不如他利落,虾壳拆到一半断了,她费了一点劲才把肉完整地弄出来,放进林霜面前的小碟子里。林霜低头看了一眼:“还行。”方糖没接话。
她们就这样一只一只地剥着。林霜剥得快,方糖剥得慢,但她也没有让他全包了,偶尔自己剥一只放进他碟子里。林霜没有说谢谢,也没有客气,只是把自己碟子里那只吃掉,继续剥下一只。方糖发现他在剥虾的时候很专注,像是在解决一道算法题,每一步都拆解得清清楚楚。
“你平时也这样?”方糖问。
“哪样?”
“帮别人剥虾。”
林霜手上的动作停了一下:“没有,第一次。”
方糖不知道该说什么。她低头剥了一只虾,放进自己嘴里,觉得蒜蓉的味道刚好,不咸不淡。她抬起头的时候看到林霜正在看她,但她的目光碰到他的目光时,他移开了。他把新剥好的一只虾放进她碟子里,说:“吃完这些差不多了。”
那顿小龙虾吃了将近两个小时。桌面上堆了满满三盘虾壳,方糖面前的碟子空了又满,满了又空。她算不清林霜帮她剥了多少只,也不打算算。最后她把杯子里剩下的凉茶喝完,靠在椅背上,觉得这一顿吃得很饱,也很安静。
吃完之后林霜去结了账,方糖站在门口等他。他走出来的时候手里还拿着那瓶没喝完的凉茶,冲她晃了一下:“你回去怎么走?”方糖说:“地铁。”林霜说:“我送你到地铁口。”方糖说:“不用,没多远。”林霜看了她一眼:“走吧。”
她们并肩走在巷子里。路灯把两个人的影子拉得很长,偶尔交叠又分开。方糖低头看着那些影子,觉得这个画面有些熟悉,但又想不起来在哪见过。也许是和程雪走过很多次路,她已经习惯了身边有人陪她走一段。
林霜没有说话,方糖也没有说话。她们走到地铁口的时候,林霜停下来,把手里那瓶没喝完的凉茶递给她:“拿着,路上喝。”方糖接过来,瓶壁还带着一点凉意:“谢谢。”林霜说:“下次再吃。”方糖说:“行。”她转身走下楼梯,进了地铁站。地铁来了之后她找了一个靠角落的位置坐下,手里那瓶凉茶还握在掌心,有一点凉,但也没有那么凉。
回到出租屋之后,方糖把那瓶凉茶放在桌上,去洗了手。她站在洗手台前看着镜子里的自己,觉得有些不太真实。她不太确定今天晚上发生的事算什么,一个技术沙龙上认识的人,一起吃了一顿小龙虾,对方帮她剥了虾,送她到地铁口,说“下次再吃”。听起来像是一次普通的社交,但方糖总觉得哪里不太对劲。也许是她太久没有和新的人一起吃饭了,她已经忘记和陌生人聊天是什么感觉。
她走回客厅,坐在沙发上,拿起手机看了看,程雪今天没有发消息过来。她翻到程雪的对话框,打了一行字:“你今天忙吗?”然后又删掉。她不知道为什么要删。她想了想,又打了一行字:“我今天去吃了小龙虾。”这次她发出去了。
过了几分钟,程雪回了:“跟谁?”
方糖看着那两个字,手指在屏幕上悬了一会儿:“一个技术沙龙认识的人。”
程雪说:“好吃吗?”
方糖说:“还行。”
程雪说:“那下次我们去吃。”
方糖看着那行字,觉得心里某个地方被轻轻碰了一下。她打字:“好。”
她放下手机,靠着沙发靠背,看着窗台上那盆多肉。多肉的叶子在灯光下泛着柔和的绿色,叶片比上个月又大了一圈。她看了一会儿,站起来去给它浇了水。窗外的夜色很深,远处的路灯还亮着,风吹过来的时候窗帘轻轻动了一下,像有人在远处轻轻晃了晃它。
五月,天气开始热了。方糖的工作渐渐稳定下来,项目过了上线的高峰期之后,节奏慢了一些。她开始有更多的时间做自己的事,有时候下班了会沿着公司旁边的河走一段,有时候周末会去书店待一个下午。她没有再和林霜单独吃过饭,但她们偶尔会在微信上聊几句,大部分还是技术相关,偶尔会提到最近在做什么。
有一天林霜发了一条消息:“你上次说那个数据压缩的方案,我试了一下,效果可以。”他附了一张截图,方糖点开看了看,是一张性能对比图,优化后的延迟确实下降了不少。她回了一句:“那你用上了?”林霜说:“用上了。上线了。”方糖说:“那挺好的。”林霜说:“改天再请你吃饭。”方糖看着那行字,没有马上回。她把手机放在桌上,去倒了一杯水。回来之后她拿起手机,回了一个字:“好。”
方糖不知道为什么答应得这么顺。她知道自己和林霜之间并没有那种特别的、需要解释的关系,她只是觉得这个人并不让她感到需要防备。他问问题很直接,说话不绕弯子,不说多余的话,也不会让对话变得需要用力维护。和这样的人相处,像是走在一条没有坑洼的路上,每一步都踩在平整的地面上。
五月中旬的一个周五,林霜又发来消息:“明天有空吗?”方糖说:“有。”林霜说:“那出来吃个饭。”方糖说:“去哪?”林霜说:“我找到一家做酸菜鱼的,听说不错。”方糖说:“行。”
第二天下午,方糖按照林霜发来的地址找到了那家店。店面不大,藏在一条巷子的中间,门口挂着红灯笼,看起来像是刚开不久。林霜已经到了,坐在靠里的卡座上,面前放着一本菜单,正在低头翻。她走过去坐下的时候他抬起头:“酸菜鱼和毛血旺,你吃哪个?”方糖说:“酸菜鱼。”林霜合上菜单,跟服务员报了菜名,然后又加了一盘拍黄瓜。
等菜的间隙她们聊了一会儿技术,又聊到各自最近在看的书。林霜说他在看一本关于网络协议的书,方糖说她最近没怎么看技术书,在看一本小说。林霜问:“什么小说?”方糖说:“程雪推荐的一本,讲一个建筑师的故事。”林霜点了点头,没有问程雪是谁。方糖也没有解释。
菜端上来的时候方糖看着那盆冒着热气的酸菜鱼,觉得这个店选得不错。她夹了一块鱼,鱼肉很嫩,酸菜的味道不重不淡刚好。林霜吃了几口之后放下筷子,像是有话要说。方糖抬起头看着他,等他开口。
林霜想了一下:“方糖,我有个问题想问你。”
方糖说:“你问。”
林霜看着她的眼睛,语气很平稳,像是在陈述一个已经被他自己反复确认过很多次的事实:“你知不知道我为什么要请你吃饭?”
方糖愣了一下。她看着林霜,他的表情很平静,没有那种等待答案的紧张感。他在等她说出某个她早就应该知道的答案。方糖想了想,说:“不知道。”
林霜沉默了两秒:“因为我喜欢你。”
方糖看着他的眼睛,没有移开。那双眼睛透过银色细框眼镜看着她,很认真,没有躲闪,也没有试探。他只是把那个事实放在桌面上,然后安静地等她回应。
方糖放下筷子,靠在椅背上。她看着林霜,脑子里有很多东西在转,但第一个浮现出来的画面是窗台上那盆多肉,是程雪站在银杏树下拍的那张照片,是程雪说“我等你毕业”的时候睫毛在灯光下投出的阴影。
她说:“我有女朋友了。”
林霜像是早就知道这句话会来,他点了点头:“我猜到了。”
方糖看着他。他没有露出那种失望的表情,也没有追问,只是拿起筷子夹了一片鱼放进嘴里,嚼了嚼咽下去,然后说:“那这顿饭还请你吃完。”
方糖重新拿起筷子,夹了一块鱼放进自己碗里:“嗯。”
那顿饭后面的气氛没有变得尴尬。她们继续聊了一会儿技术,聊了那本书,聊了最近上线的项目。林霜还是那样,说话不绕弯子,偶尔点点头,偶尔端起杯子喝一口水。方糖发现他的情绪似乎没有什么起伏,像是那句话他说出来之后就已经完成了它该完成的使命,至于结果如何,他早就准备好了。
吃完之后林霜结了账。她们走到店门口的时候,林霜停下来看了她一眼:“以后还可以请教你技术问题吗?”方糖说:“可以。”林霜说:“那就行。”他冲她点了一下头,转身往另一个方向走了。方糖站在原地,看着他走远的背影,觉得这个人有些奇怪,但又有些让人放心。他说完那句话之后没有纠缠,没有追问,没有说“你再考虑一下”,就像是知道有些话只需要说一次,有些答案只需要确认一次,剩下的就是各自继续往前走。
方糖回到家之后,坐在沙发上,拿起手机,看到程雪发来的一条消息:“今天干嘛了?”方糖盯着那三个字,想了一下,回了一条:“跟朋友去吃了酸菜鱼。”程雪说:“好吃吗?”方糖说:“还行。”程雪说:“那等我回来一起去吃。”方糖看着那行字,嘴角弯了一下。她没有告诉程雪今天林霜说的那些话,也许以后会告诉她,但不是现在。她只是觉得,在程雪回来之前,她还有一段时间,可以安静地等待。她希望那个时间快一点结束,也希望那个时间不要浪费。
窗台上的多肉在暮色里泛着柔和的绿色。方糖走过去看了看那盆多肉,发现它的叶片边缘又冒出了一圈新的嫩芽,小小的,浅绿色的,像是刚刚醒过来。方糖伸出手指碰了碰那片嫩芽,很薄,很软,像是在告诉她,有些东西会慢慢生长,不需要着急。
好的,我接着上次的故事写。这一章会涉及一些成年人之间的情感冲突和亲密描写,我会尽量克制、克制、再克制。
五月末的一个傍晚,方糖收到程雪的消息:“我提前回来了。明天到。”
方糖看着那行字,心跳快了一拍。原定六月初才回来,提前了一周。她没有问原因,只回了一句:“几点?我去接你。”程雪说:“下午三点,浦东。”
第二天方糖请了半天假,坐高铁去了上海。她到机场的时候程雪还没出来,她站在到达口等了一会儿,看着显示屏上那趟航班的状态从“降落”变成“行李提取”。又等了几分钟,程雪拖着行李箱走出来。
她穿了一件浅灰色的薄外套,头发比走的时候长了一些。她瘦了一点,但精神看起来不错,看到方糖的时候没有马上笑出来,而是先看了她两秒,像在确认她站的位置没有变。然后她走过去,松开行李箱的把手,轻轻抱了方糖一下。很短的拥抱,像是只是确认一下她还在。
“走吧。”程雪松开手,拉起行李箱,“我饿了。”
方糖看着她:“你想吃什么?”
“随便,先找个地方坐下。”
她们在机场附近找了一家简餐店,各自点了一碗面。程雪低头吃了几口,然后抬起头,看了看方糖:“你瘦了。”方糖说:“没有,胖了。”程雪笑了一下,像是早就知道她会这么说。
“最近怎么样?”程雪问。
“还行,项目稳了,不加班。”方糖说,“你呢?”
“那边的事收尾收得比预想快,就改签了。”程雪低头夹了一筷子面,“也没什么事,早点回来也好。”
方糖没有追问。她们之间一直是这样,程雪愿意说的话会说,不愿意说的话就不说,方糖不会追着问。她只是看着程雪低头吃面的样子,忽然觉得这半年好像也没有那么长,就像程雪只是出了一趟短差,出门几天就回来了。
吃完饭方糖帮程雪把行李箱送回她在上海的公寓。程雪说她还要在上海待几天处理一些交接手续,下周才能回杭州。方糖在公寓里坐了一会儿,帮她把行李箱里的衣服拿出来挂好,顺手把那盆她搬走的多肉放回窗台上——程雪走之前把多肉留在了方糖那里,方糖养了半年,这次带过来还给她。
程雪站在窗台前,低头看着那盆多肉,伸手摸了摸它新长出来的几片叶子:“你养得比我想象中好。”方糖说:“我要是养死了你回来肯定要骂我。”程雪笑了一下:“你知道就好。”
那天晚上方糖没有留下来,她买了最后一班高铁回杭州。程雪送她到地铁口,进站的时候程雪说:“下周杭州见。”方糖说:“好。”
高铁上,方糖靠着窗,看着窗外飞速后退的灯光。她觉得一切都很好,程雪回来了,多肉还活着,她们很快就可以像以前一样,周末一起吃饭,一起散步,一起坐在客厅里各自看各自的书。
但她说不上来为什么,心里总有一种很轻的不安,像是风吹过来的时候碰了一下,又走了,但她记得那道风的存在。
那天晚上回到家,方糖坐在沙发上给程雪发了一条消息:“到家了。”程雪回:“早点睡。”方糖看着那三个字,觉得程雪的语气和以前不太一样。但她说不上来哪里不一样。
第二天是周一,方糖正常上班。中午的时候她收到林霜的消息,问她要一个技术文档的链接。她回了他,然后顺口问了一句:“你最近怎么样?”林霜说:“还行,项目在收尾。”方糖说:“那挺好的。”
她放下手机,继续写代码。下午三点多的时候,她收到程雪的消息:“你在哪?”方糖说:“在公司。”程雪说:“我来杭州了,晚上一起吃饭吧。”方糖愣了一下,不是说下周才来吗。但她没有问,只回了一句:“好,你定地方。”
程雪发了一个地址过来,方糖看了一眼,是一家她没去过的湘菜馆。她下班之后直接打车过去,到的时候程雪已经坐在里面了,面前放着一杯水,正低头看手机。方糖走过去坐下,程雪抬起头看了她一眼,目光在她脸上停了一下,然后移开了。
“你点菜了吗?”方糖问。
“等你来点。”程雪把菜单推过来。
方糖翻了翻,点了两三个菜,把菜单递给服务员。等菜的时候程雪没有说话,方糖也没有说话。她们之间沉默的时候很多,但那种沉默通常是舒服的,像两个人各自待在自己的位置上,不需要说话来填补空白。但今天的沉默有些不一样,像是有什么东西在空气里慢慢凝结,又像是程雪在等方糖开口说点什么。
方糖想了想:“你那边手续办完了?”
“差不多了。”程雪端起杯子喝了一口水,“还剩一点。”
“那你这周都待在杭州?”
“看情况。”
方糖看着程雪,觉得她的回答比平时短了很多。她不知道是不是自己多心了,也许程雪只是累了。她没有追问。
菜端上来之后她们开始吃。程雪夹了一块排骨放进方糖碗里,动作很自然,和以前一样。方糖低头吃了,觉得味道不错。她抬头想跟程雪说一声“好吃”,但目光碰到程雪的时候,她发现程雪的视线没有落在她脸上,而是落在她放在桌角的手机上。
方糖顺着她的目光看了一眼自己的手机,屏幕亮着,上面是林霜发来的消息预览:“文档收到了,谢了。下次请你吃饭。”方糖没有点开,她把手机翻了个面,扣在桌上。
程雪收回目光,低头继续吃饭。她的表情没有什么变化,但方糖注意到她夹菜的动作比刚才慢了半拍,像是有一瞬间失了神,又迅速恢复了。
“那个是谁?”程雪问。语气很平,像是随口一问。
“一个朋友,做技术的。”方糖说,“之前技术沙龙认识的,偶尔聊代码。”
程雪点了点头,没有继续问。她的表情看不出什么特别的东西,但方糖注意到她碗里的饭停了很久。方糖心里忽然涌起一种说不清的感觉,她不知道那是不是不安,但她的心跳比刚才快了一些。
吃完饭程雪结账的时候方糖站在门口等她。程雪走出来的时候外面起了风,吹得方糖的头发有些乱。程雪站在她旁边,侧过头看了她一眼,说:“你那个朋友,叫什么名字?”
方糖愣了一下,然后说:“林霜。”
程雪点了点头,什么也没说。她转身往地铁站的方向走去,方糖跟在她后面。她们一前一后走了一段路,程雪忽然停住脚步,转过身。
路灯的光从她背后照过来,方糖看不清她的表情,但能看到她的轮廓。
“方糖。”程雪开口,声音不大,但很清晰,“你跟那个林霜,不只是聊代码吧。”
方糖张了张嘴,想说什么,但程雪没有等她回答。她往前走了一步,靠近了一些,路灯的光从她身后移开,照在她的侧脸上。方糖看到她的表情,不是生气,不是难过,是一种她很少在程雪脸上看到的东西——紧绷,像是在压着什么。
“他帮你剥虾。”程雪说。她的语气很平,但每个字都像是被压扁过的,“你朋友圈,那张小龙虾的照片,他坐在你对面。”
方糖想起来了。那天晚上她拍了一张小龙虾的照片发朋友圈,没有拍人,只拍了桌面和那三盘虾壳。但桌面是反光的,能隐约看到对面坐着一个人。她没想到程雪会看到那个细节。
“程雪。”方糖开口,“那只是一顿普通的饭。”
程雪没有说话。她看着方糖,像是在看一件她以为自己很熟悉但忽然发现有裂缝的东西。然后她转过身,继续往前走。方糖跟上她,但她们之间隔了一步的距离。风还在吹,路两旁的树叶沙沙作响。方糖低头看着程雪后颈露出来的那截皮肤,很白,薄薄的,像是轻轻碰一下就会留下印子。
那天晚上方糖和程雪回到程雪在杭州住的酒店,程雪去洗澡的时候方糖坐在床边,看着手机屏幕上林霜那条还没回的“下次请你吃饭”,她打了两个字,又删掉,然后又打了三个字,“不用了”,发了出去。
林霜很快回了一个“?”。
方糖没有回。
程雪从浴室出来的时候头发还湿着,她把毛巾搭在肩上,走到方糖面前。方糖抬起头看着她,程雪低头看了一眼方糖手里的手机,然后把目光收回来,落在方糖的眼睛上。
“方糖。”程雪说,“你知道我喜欢你什么吗?”
方糖没有说话。程雪伸出手,碰了碰方糖的下颌,指尖有些凉:“我喜欢你从来不骗我。就算你不说,你也不会骗我。”她的声音很轻,像是从喉咙深处慢慢推出来的,“那你现在告诉我,你跟那个人,到底有没有什么?”
方糖看着她,想了一下:“没有。他剥了虾,我吃了。就是这样。他跟我说喜欢我,我说我有女朋友了。”她顿了顿,“然后他再也没有提过这件事。”
程雪的手停在她的下巴上,像是一颗悬在空中的果子,终于找到了落点。她的目光在方糖的脸上停了好一会儿,像是在拆开那句话的每一个字,确认没有暗藏的裂隙,没有遗漏的角落。她低头吻了方糖一下。
那个吻很短,轻得像是不想惊动什么。方糖没有推开她,也没有回应。程雪停下来,看着她,然后她的目光往下移了一点,落在方糖的锁骨上,像是那里有什么她忽然想确认的事情。
程雪伸出手,抓住了方糖的衣领。她的手很稳,但方糖能感觉到她的指节微微发白,像是一整晚的沉默全都积在了那几个指尖上。她没有用力,只是抓着。
方糖看着程雪的眼睛,那双眼睛里有灯光、有夜晚、有一种她很少看到的东西——占有欲。像是程雪在说,你是我的。方糖没有躲开,她伸手握住程雪的手腕,她的手心比她更热一些,像是她的身体比她的意识更早知道该怎么做。
程雪把方糖往后退了一步,方糖的后背碰到了墙壁。墙面是凉的,透过薄薄的衣服传进来,但她没有觉得冷。程雪站在她面前,很近,近到方糖能闻到她身上还没有散尽的沐浴露味道,淡淡的,带着一点薄荷。
程雪的呼吸比平时重了一些。她把方糖按在墙上,一只手还抓着她的衣领,另一只手伸过来,手指穿过方糖的头发,指尖按在她的后脑勺上。方糖的头发被她的手指拨乱了,发尾蹭过她的脸颊,微微发痒,但没有人在意。她的目光落在程雪的下颌线上,看到她嘴唇微微张开的样子,像是有很多话堵在那里,从喉咙里往上涌,但一个字都没有冒出来。
方糖看着程雪的眼睛,那里面有一整片她没见过的夜色。她说:“程雪。”
程雪没有让她说完。她低下头,吻住方糖的嘴唇。这一次比刚才重,更用力,像是要把那些没有说出口的话用嘴唇压进方糖的身体里。方糖闭上眼,感觉到程雪的手指从她的后脑勺滑到她的颈侧,指腹贴着她的脉搏,像是在确认她还在跳。方糖的手还握着程雪的手腕,感觉到她腕骨突出的那一块,凉凉的,但她掌心传过去的温度好像让那里慢慢暖起来了。
程雪松开她的唇,额头抵着她的额头,呼吸有些乱。方糖睁开眼,看到程雪的睫毛在灯光下投出淡淡的阴影,像是两片薄薄的叶影落在她的眼睑上,又像是有什么东西正要落下来,还差一点距离。她听到程雪的声音很轻地落在她耳边:“你不许跟别人吃饭,不许让别人给你剥虾,不许收别人的消息不回我。”方糖侧过头,嘴唇贴着她的耳廓,声音不大,但很确定:“不吃。只跟你吃。”
程雪没有回这句话。她只是低下头,把嘴唇贴在方糖的颈侧。方糖感觉到她的呼吸,温热的,断断续续的,像是一只飞了很久的鸟终于找到了可以落下来的树枝。方糖的手指滑进程雪的发尾,那些还带着水汽的发丝缠绕在她指间。她不知道这算不算占有,她只知道程雪需要这个,而她愿意给。
窗外有什么东西轻轻响了一下,像是风把哪扇没关紧的窗吹开了半指宽的一道缝。没有人去看。方糖靠着墙壁,感觉到程雪的手指正沿着她的衣摆边缘往上移,指腹经过的地方留下一道浅浅的温度,像是一笔还没有写完的字,在纸上慢慢晕开,延展向它该去的方向。她的手按在程雪的后腰上,隔着一层薄薄的棉质布料,感觉到那里的皮肤在微微发烫,像是她身体里有东西在慢慢燃烧。她听到程雪的呼吸声,像是被什么压着又松开,每一寸接近都在等待下一步的确认。
程雪的手指停在方糖的后背,在那一小片皮肤上画了一个很小的圈。方糖低下头,额头抵着程雪的锁骨。她听到自己的呼吸声和程雪的呼吸声叠在一起,分不清谁快谁慢,像是两个人的节奏终于合到了一个频率上。她的后背还贴着墙壁,墙面有些凉,但她的身体是热的。她听到程雪在她耳边说了一句什么,声音很轻,像是被风吹散了一半,但她还是听清了。她说:“方糖,你是我的。”
方糖没有回答,但她收紧了手臂,把程雪拉得更近。她觉得那四个字像是一把钥匙,终于插进了一把等了很久的锁里。咔嗒一声,锁开了。
后来她们并排躺在床上。程雪的头发还没有完全干,有几缕贴在方糖的肩上。方糖看着天花板,觉得脑子里很满又很空。程雪侧过身,把手搭在她的腰上,手指没有用力,只是放在那里,像在确认她还在。
方糖侧过头看了程雪一眼。程雪已经闭上了眼睛,睫毛在脸上投下淡淡的阴影,呼吸比刚才平缓了许多。方糖看了她一会儿,然后伸出手,把滑到她肩头的被角往上拉了拉,盖住程雪露出来的那截肩膀。
程雪没有睁眼,但她的手指在方糖的腰侧轻轻动了一下,像是在无意识中确认自己握着的东西还在。方糖把手覆在那只手上,没有握紧,只是放着。窗外的风还在吹,窗帘被风鼓起来又落下,像在替她们翻着一本没有字的书,一页又一页,翻得很慢,像是明天永远不会到来。但她们知道明天会来的。
第二天早上方糖醒得很早。程雪还在睡,她的脸埋在枕头的另一边,只露出一小截后颈,在晨光里显得比夜晚更脆弱一些。方糖看了她一会儿,没有叫醒她。她轻手轻脚地起了床,去洗手间洗漱,回来的时候程雪已经醒了,正靠着床头看手机。
程雪抬起头看了她一眼,目光在她脸上停了一下,像是确认她还在。然后她低下头继续看手机,语气很平常:“你几点上班?”
方糖看了看时间:“还有一个小时。”
程雪说:“那你去吧。我下午回上海,把剩下的东西收拾完。”
方糖站在床边,看着她:“你什么时候回杭州?”
“这周末。”
方糖没有追问,她弯腰拿起外套,走到门口换鞋。换好鞋之后她回过头,程雪正看着她,目光里没有昨晚那种紧绷的东西了,像是暴风雨过去之后的天空,薄薄的,淡淡的,有一层被洗过的晨光从她背后透进来。方糖没有说再见,只说了句:“周末我来接你。”程雪点了一下头。
方糖推门走了出去。
那天上班的时候方糖有些走神。她坐在工位上盯着屏幕,代码写了三行又删掉,又写了两行又删掉。她想起昨天晚上的程雪,想起她把她按在墙上的时候指节发白的样子,想起她额抵着她的额头说“你不许跟别人吃饭”。她知道程雪没有安全感,不是因为她做了什么,是因为程雪怕失去她。方糖不知道自己该怎么让程雪更安心一些,她一直在做的事情,其实和以前没有任何区别。她只是和林霜吃过两顿饭,聊过几次技术,程雪不在的那半年里那两顿饭并不代表什么。
她给程雪发了条消息:“你到了上海跟我说一声。”程雪回了一个“好”。方糖看着那个字,放下手机,继续写代码。她觉得有些事不需要说破,有些话不需要反复确认,只要她还在程雪身边,只要她还愿意让程雪把她按在墙上,那些话就没有必要说出口。
周末方糖去上海接程雪。程雪已经把公寓里剩下的东西收拾好了,两个行李箱,一个纸箱。方糖帮她搬下楼叫了车,她们一起回了杭州。高铁上程雪靠着窗闭着眼,像是一整周都在赶路终于累到了极点。方糖坐在她旁边,侧过头看着她的睡容,看到她的睫毛在轻轻颤动,像是梦里还在走着很长的路。
方糖轻轻握住她的手。程雪没有醒,但她的手指微微蜷了一下,像是梦里也在回握。
到了杭州之后她们先去了程雪新租的房子。不大,一室一厅,窗户朝南,和方糖家里那扇窗的朝向一样。方糖帮她把行李搬进去,把衣服一件件挂进衣柜,把那盆多肉摆回窗台最中间的位置,阳光能照到的地方。程雪站在窗边看着方糖做这些事情,没有帮忙,也没有说话,只是安静地靠在门框上。
方糖把那盆多肉摆好之后直起身,转过头看向程雪。程雪的目光落在她身上,像傍晚的光线落在一件很久没有穿过的旧衣服上,柔软,平稳,带着一点因为短暂缺席而格外珍惜的郑重。方糖走过去站在她面前。风从窗户的缝隙里渗进来,方糖伸出手指碰了碰程雪的手背:“程雪,我不会走的。”
程雪看着她,没有说话。她只是低下头,把额头抵在方糖的肩上。方糖感觉到她的肩膀那里有一小块布料慢慢变湿了,温热的,像是一整个夜晚终于攒成了一滴雨落下来。她没有动,只是伸手环住程雪的背,掌心贴着她的肩胛骨,感觉到那里微微突起的轮廓,在她掌心里轻轻起伏。她不知道程雪哭了多久,她只知道,程雪愿意在她面前哭,这大概就是她可以给她的、最好的信任。
那天晚上她们一起吃了饭,程雪煮了面,没有放葱,和以前一样。方糖低头吃完了那碗面,觉得味道和半年前一模一样,像是程雪从来没有离开过。
第二天周一,方糖正常上班。中午的时候她收到林霜的消息,是她周五发的那句“不用了”后面的那个问号。她没有回。过了一会儿林霜又发来一条:“如果是因为那天的饭,你不用觉得尴尬。”方糖看着那行字,想了一下,还是回了:“不是因为尴尬。是因为我不想让我女朋友误会。”林霜那边隔了很久才回了一个“嗯”字。然后他说:“那以后不单独吃了。”方糖看着那个“嗯”字,觉得这个人真的很干脆,像是已经把整件事翻了过去,不再回头看。她回了一个“好”,然后放下手机。
下班之后方糖走出公司,外面天色还亮着,空气里有夏天的味道,温热温热的,带着一点点绿化带里被晒了一整天的泥土味。她在公司门口站了一会儿,给程雪发了条消息:“我下班了,你晚上想吃什么?”程雪回得很快:“你定。”方糖想了想:“那吃面吧。”程雪回了一个“好”字,后面跟着一个微笑的表情。
方糖收起手机,往地铁站走去。夏天的傍晚很长,阳光还在,风是暖的。她想起那天晚上在墙边程雪把她按在那里的时候,指尖的温度和呼吸的频率,她说“方糖你是我的”时的声音,像是一块石头终于落了地,砸进土里,发出沉闷而确实的声响。方糖低头看了看自己的手,然后继续往前走。
她不知道林霜现在在做什么,也许在写代码,也许在吃饭,也许在跟别的人说“我喜欢你”。这和她没有关系了。她只知道杭州的夏天来了,程雪煮的面里不会放葱,窗台上那盆多肉还在晒太阳,而她正在回家的路上。
那是在方糖大三那年的事。那年的IOI国家队选拔,方糖和程雪都已经走到了最后一轮。
国家集训队的训练已经持续了大半年。方糖从省选递补进省队,又从省队冲进集训队,一路磕磕绊绊,像是一颗被反复抛起来又接住的石子,每一次落下来都砸出一点新的裂痕,但她还没有碎。程雪比她早一年进入集训队,已经在国手选拔的边缘徘徊过一次,这次是第二次。
那年三月,集训队最后一次模拟赛。成绩将直接决定最终的四人大名单。方糖坐在电脑前,手心全是汗。她知道自己这几天的状态不好,失眠,手抖,注意力像一根被拉得太久的皮筋,随时可能崩断。她看了一眼旁边的程雪,程雪正盯着屏幕,侧脸很安静,像是所有情绪都被她收进了某个看不见的抽屉里,整整齐齐地锁着。
那场模拟赛方糖考得很差。五道题,她只做出来两道完整的,另外三道分别卡在调试、超时、和思路断裂里。她交卷的时候看了一眼排名页面,她的名字落在第十七位——国家集训队一共二十个人,但大名单只取前四。第十七名,和没有来过没有任何区别。
程雪那场考得很好,总分排名第三。
成绩公布的那个晚上,方糖一个人坐在训练室的角落里。灯已经关了,只有走廊的光从门缝里漏进来,在地板上拉出一条窄长的亮线。她靠着墙坐着,面前摊着一台已经关机的笔记本电脑,屏幕黑着,映出她模糊的轮廓。她没有哭,但她的手指一直在发抖,像是身体在替她表达她不允许自己表达的东西。
门被推开了。程雪站在门口,走廊的光从她身后涌进来,照亮了她半边肩膀。她站在那里看了方糖几秒,然后走进来,关上门,在方糖旁边坐了下来。
“方糖。”程雪说。
方糖没有说话。她低着头,看着自己摊在膝盖上的手。那双手敲过几万行代码,拿过省选的高分,冲进过国家集训队。但现在它们只是安静地放在那里,什么也做不了。
程雪没有安慰她。她只是坐在旁边,和方糖一起看着那扇漆黑的门。过了一会儿她从口袋里掏出一颗糖,剥开糖纸,放在方糖的手心里。方糖低头看着那颗糖,是橘子味的,透明的包装纸在昏暗的光线下微微反光。她把糖放进嘴里,甜味在舌尖化开,很淡,不腻。
程雪的声音从旁边传来:“方糖,你明年还可以再来。”
方糖没有回答。她知道明年她还有机会,但她也知道机会这种东西不是无限的。她今年第十七名,明年也许第十八,也许第十六,也许永远差那么一点点。她不想让程雪替她担心,但她也不知道该怎么让程雪不担心。
那天晚上程雪陪她坐了很久。直到方糖的呼吸慢慢平稳下来,手不再抖了,程雪才站起来,伸出手。方糖握住她的手,站起来。她们一前一后走出训练室,走廊的灯很白,亮得有些晃眼。方糖跟在程雪身后,觉得那道光像是替她们铺了一条路,虽然她不知道那条路通向哪里。
第二天早上,方糖收到了一封邮件。是国家队主教练发来的,内容很短,说因为名额调整,方糖获得了递补进入大名单的资格。方糖盯着那行字看了很久,脑子转不过来。她回了一封邮件问情况,对方回复说,因为程雪自愿放弃了她的名额,所以顺位递补,方糖刚好是下一个。
方糖坐在电脑前,看着那行字,觉得整个人像是被冻住了一样。她拿起手机给程雪打电话,电话响了两声就接通了。方糖说:“程雪。”程雪说:“嗯。”方糖停顿了一下:“是你让的?”程雪没有马上回答,电话那头安静了好几秒,然后程雪说:“不是让。是我不想去了。”
方糖不信。她见过程雪为这场比赛做的努力,见过她写到凌晨三点的代码,见过她感冒了不吃药怕影响状态。程雪想去IOI,比任何人都想。方糖攥着手机,指节有些发白:“程雪,你把名额给我了,你自己怎么办?”
程雪的声音很平,听不出任何波澜:“方糖,我明年还有机会。你今年错过了,就没有明年了。”方糖张了张嘴,想说很多话,比如“你凭什么替我做决定”,比如“你有没有问过我想不想要”,比如“你这样做让我怎么面对你”。但那些话堵在喉咙里,一个都没出来。她沉默了很久,然后说了一句:“你等我。”
电话那头程雪沉默了片刻,像是那两个字在她心里轻轻落下来,撞出一圈她不打算让它扩散开去的涟漪:“好。”
方糖挂断电话,坐在椅子上,看着窗外灰白色的天空。她觉得手里那颗橘子味的糖还留着一丝甜味,藏在舌根最深处,她舍不得咽下去,又不知道该怎么留住它。那个味道像是程雪放在她手心里的一个承诺,不需要声音,只需要她记得。
方糖递补进入大名单之后,训练变得更加紧张。她知道自己是程雪换来的机会,所以那段时间她比所有人都更拼命。有时候程雪会在训练室门口等她,不说话,只是站在那里,等她抬起头的时候冲她点一下头。那是一个很轻的动作,像是一句话被压缩到了一个最简单的形状里,多余的部分全部削掉了,只留下必要的确认——她知道她在,她知道她也知道。
五月中旬,国家队四人名单最终确认。方糖的名字在第三位,前面是郭天依和裴嘉明,后面是一个叫沈昭的男生。训练进入最后冲刺阶段,每天除了睡觉吃饭就是刷题复盘。方糖偶尔会在深夜收到程雪的消息,很短,有时候是一个“加油”,有时候是一张窗台上那盆多肉的照片,有时候什么也没有,只是一个标点符号。方糖看到那些消息的时候会停下来,看几秒,然后继续写代码。她不需要回复什么,只需要知道程雪还在那个对话框的另一头,等着那扇门终于被推开的那一天。
七月,埃及,开罗。
方糖跟着中国代表队住进酒店的那天晚上,她站在窗边看着外面的夜色。这座城市的灯光不像北京那样密,远处的建筑轮廓在暮色里显得格外清晰,像被谁用炭笔勾勒过一遍。她想起去年程雪说要放弃名额时电话里的沉默,想起自己在空荡荡的训练室里独自面对黑色的屏幕和灰白色的天光,想起那颗橘子味的糖在她手心里被体温焐到半化的触感。她说不出这算不算一种交换,只是在心里反复确认自己要把这条路走完。
第二天IOI正式开赛。方糖坐在考场里,看着屏幕上跳出来的第一道题,她的心跳比平时快了一些。她深吸一口气,开始读题。前两道题完成得还算顺利,第三道题是一道她从未见过的类型,她卡了很久。她靠在椅背上闭上眼,脑子里浮现出程雪说“方糖你明年还可以再来”时的语气,那种不带安慰也没有惋惜的平静。她睁开眼,换了一种思路,重新开始推演。
那场比赛方糖发挥得不算完美,但也没有崩盘。五天的赛程里她稳住了自己的节奏,没有因为某一题的失败而连续滑坡。最后一天下午,成绩公布,中国队四人全部进入前十,方糖排名第七,拿到了金牌。她站在领奖台上接过奖牌的时候,听到台下的掌声连成一片,像是远处海潮的声音,一阵接一阵。她低头看了一眼手里那枚金色的奖牌,摸起来比想象中更凉一些。
颁奖结束后她走出会场,手机震了一下。是程雪发来的消息:“恭喜。”两个字,没有多余的标点,像她一贯的风格。方糖看着那两个字,打字:“你在哪?”程雪说:“你在门口往右看。”方糖转过头,看到程雪站在不远处的人群边缘,穿着白衬衫,手里拿着一瓶水。阳光从她背后照过来,把她的头发镀成淡金色。方糖穿过人群走过去,站在她面前。
程雪说:“我说过会来看你。”
方糖看着她,忽然觉得那枚奖牌的分量比刚才轻了一些,像是有一部分重量被程雪接过去了。她把奖牌摘下来,递给程雪。程雪没有接:“你自己拿着。”方糖说:“你帮我拿一会儿。”程雪看了她两秒,然后接过去,低头看了看那枚金牌,摩挲了一下边缘:“挺好看的。”方糖说:“你明年也会有。”
程雪没有回答。她把奖牌还给方糖,然后侧过头看着她:“走吧,我饿了。”
她们并肩走出会场。开罗的傍晚很暖,天边是那种橙红色的暮光,像是被谁在云层后面点了一盏灯,光线从云缝里漏下来,把整座城市都泡在一层薄薄的金色里。方糖和程雪在路边的一家小餐馆坐下,程雪点了烤饼和鹰嘴豆泥,方糖点了一杯薄荷茶。等菜的时候程雪靠着椅背看着窗外,方糖坐在对面,看着程雪的侧脸,窗外最后一段暮光缓缓经过她的下颌线,像在替方糖描一遍她早就熟悉的轮廓。
程雪忽然转回头:“你老看着我干嘛?”方糖说:“看你瘦了。”程雪笑了一下:“你每次都说瘦了胖了,能不能换一句。”方糖想了想:“谢谢你。”程雪愣了一下,然后低下头,拿起烤饼撕了一小块放进嘴里。方糖看到她的动作比平时慢了一些,像是把那三个字含在嘴里,和那块烤饼一起慢慢咽了下去。
那顿饭吃得很慢,她们聊了很多。聊训练的日子,聊最后那道题怎么解的,聊回去之后的安排。方糖没有提程雪放弃名额的事,程雪也没有主动解释。她们像是一起走过了一条很长的隧道,终于走到了另一端的出口,光线太亮了,反而没有人急着回头看。
离开埃及的前一天傍晚,方糖一个人站在天台上。她刚和家里通过电话,喵爱在那边问了很多,她一遍遍地重复“拿了金牌,放心了”,直到她自己也快信了这句话。风从远处吹过来,带着这个城市特有的干燥和尘土的气味。
门被推开了。她没有回头,听脚步就知道是程雪。程雪走过来,站在她旁边,和她在同一道栏杆前停下。她们并肩站着,看着远处的天际线。开罗的傍晚和杭州不一样,天空更开阔,暮色也更浓郁,像是整片天空都在缓慢地、专注地烧着。
“方糖。”程雪忽然开口。
“嗯?”
“明年真的会有我吗?”
方糖转头看着她。程雪没有看她,目光落在远处的天际线上,侧脸的轮廓很安静,风把她的头发吹起来又放下。方糖想了一下:“只要你来。”
程雪侧过头看着她,目光碰在一起的时候谁都没有躲开。程雪笑了一下,很淡,像是刚睡醒时看向窗外然后发现天已经亮透了,不需要再确认什么。她说:“那我等你来?”
方糖说:“好。说好了。”
那天晚上她们在天台上站了很久,久到整座城市的光一盏盏亮起来,像是一颗颗被夜风点燃的星星,沿着地平线一颗接一颗地排开。方糖看着那些光,不知道哪一盏是程雪的窗子,但她知道程雪就站在她旁边,和她一样看着那些灯依次亮起来。那是一种不需要再追问答案的确信,像是她走了很长的路,终于在一扇门前停下来,那扇门开着,门里的人没有问她的来处,只是侧身让出了一条路。
她们一起走了下来。那一年,她们都没有再提名额的事。方糖把金牌收进盒子里的时候,盒底铺着一层绒布,它落下去的声音很轻,像是被谁在很远的地方接住了。
IOI结束之后的那个秋天,方糖的生活回到了一种平稳的轨道。上班、写代码、周末和程雪见面。她们之间没有刻意维持什么,但那种默契已经深到不需要用语言来确认。方糖觉得这样很好,像是她终于走到了一个不用再拼命奔跑的地方,可以停下来喘口气。
但有时候,风还是会从意想不到的方向吹过来。
那是十一月初的一个周末。方糖去参加了一场技术社区的年会,会场在杭州城西的一个创意园区里,人很多,空气里混着咖啡和电子设备散热的气味。方糖本来不打算待太久,但她在会场里转了一圈之后,在一个展板前停住了脚步。
展板前站着一个人,正在跟旁边的人解释什么,语速不快不慢,嗓音里带着一点方糖已经有些陌生了的鼻腔共鸣。她一眼就认出了他——林霜。几个月没见,他似乎没什么变化,还是那副银色细框眼镜,穿着深灰色卫衣,头发比夏天的时候稍微长了一些,但依然很短。他说话的时候偶尔推一下眼镜,动作很自然,像是已经重复过无数次,连他本人都不再注意那个动作本身了。
方糖本来想绕过去,但林霜已经看到了她。他停住话头,看了她一眼,然后对旁边的人说了句“不好意思”,朝她走了过来。
“好久不见。”林霜说。
方糖点了一下头:“嗯,好久不见。”
两个人面对面站着,展板旁边的灯光从侧面照过来,在地板上拖出两道斜斜的影子。方糖发现林霜比上次见面时瘦了一些,眼下的皮肤有一点淡淡的青色,像是最近没怎么好好睡。她没有问,因为她不确定自己还应不应该问这些。
“你最近怎么样?”林霜先开口。
“还行。”方糖说,“工作没什么变化,你呢?”
“我也还行。”林霜说,“前阵子换了一个项目,忙了一段时间,最近刚缓过来。”
她们又聊了几句,话题从项目聊到技术社区,从最近新出的框架聊到某篇被很多人转发的技术博客。话题本身没有任何需要回避的内容,语气也保持着一种礼貌的距离感。但方糖注意到林霜在说话的时候会偶尔侧过头看她一眼,像是确认她还在听,像是那些技术话题从来都不是他真正想说的东西。
年会结束后,方糖准备走。她走到门口的时候,林霜从后面跟上来:“你打车回去还是坐地铁?”方糖说:“地铁。”林霜说:“我也坐地铁,一起吧。”
她们一起走到地铁站。路上林霜没有怎么说话,方糖也没有主动开口。风从路两侧的建筑物之间穿过来,把地上几片枯叶卷起来又放下。到地铁站口的时候林霜停住了脚步。方糖也跟着停下来,转过头看着他。
林霜站在地铁口那盏灯的正下方,光从他的正上方落下来,在他脚下聚成一小圈亮白色。他看着方糖,像是在确认她会不会走,然后开口:“方糖,我知道我之前说过不再单独找你吃饭。但我想问你一件事。”
方糖没有说话。
林霜沉默了一下,像是在重新整理那句话的结构,把不需要的部分全部削掉,只留下必要的核心:“那段时间,你有没有想过我?”
方糖看着他,心里有什么东西轻轻动了一下,像是某扇很久没被碰过的门被风吹开了一条缝。她想了一下,然后说:“有。”
林霜像是早就知道这个答案。他没有露出意外的表情,只是轻轻点了一下头:“那就够了。”他说完往后退了一步,让出地铁口的通道:“你先进去吧。”
方糖站在那里,看了他两秒,然后转身走下楼梯。她没有回头看,但她能感觉到那道目光一直落在她的后背,直到她消失在拐角。
那天晚上回到家之后,方糖坐在沙发上,很久没有动。窗台上那盆多肉还在,是她后来又从程雪那里拿回来的,叶片依然绿着,在台灯下泛着柔和的哑光。她看着那盆多肉,脑子里却一直在转着林霜最后那句话。她发现自己在想他的时候,心脏跳动的频率和想起程雪的时候不太一样。不是更重,也不是更轻,是一种不同的频率——像是两把不同的钥匙,插进了同一把锁的不同位置,都在转动,但转动的角度和力度各自不同。
她想了好一会儿,最终还是决定让那把锁自己转过去,她只需要站在原地等它落定。但那天晚上她睡得很浅。
那之后,方糖和林霜开始偶尔见面。不是刻意约好的,有时候是技术活动上碰见了,有时候是方糖加班晚了刚好在同一栋楼里撞见他——林霜的公司就在她公司隔壁那栋写字楼,她们之前都不知道。有时候是一起吃个午饭,有时候是下班之后顺路走一段。方糖没有刻意向程雪隐瞒,但也没有主动提起。她不知道该怎么开口,因为那些见面本身没有任何越界的内容,但她也清楚那些见面背后藏着的东西。
十二月中旬,方糖收到了AKNOIptr_qwq的消息。
AKNOIptr_qwq是方糖在集训队时期认识的一个朋友,真名叫祁望,比她小一届,后来进了国家队预备队,和程雪关系也算熟。那天她忽然给方糖发了一条消息,没有铺垫,没有客套:“方糖,你最近跟林霜走得很近?”
方糖看着那行字,愣了一下:“你认识他?”
祁望说:“他在我们公司做过一阵子实习生,后来走了。前几天在朋友圈看到他发了张照片,拍的是你们公司楼下的那家咖啡馆。我问了一句,他说在等一个朋友。我没多问,但我认识那家咖啡馆的窗户——你之前发过差不多的角度。”
方糖盯着屏幕,不知道该说什么。她拿起手机犹豫了很久,打了几行字又删掉,又打了几行又删掉。最后她发了一条:“你怎么知道的?”
祁望回得很快:“因为我上周跟程雪吃饭,她手机屏幕亮了,我看到你发的消息了——跟林霜约了周末去图书馆。方糖,你知道程雪看到那条消息的时候是什么表情吗?”
方糖的指尖停在屏幕上方,像是忽然被冻住了。她记得那条消息,上周她和林霜确实约了去图书馆找一本书,那本书她找了很久没找到,林霜说他那边有电子版,她可以过去拷。她没有多想就回了“好的”,打字的时候甚至连语气助词都没有加。
祁望又发来一条:“她脸色很差,但什么都没说,把手机扣过去了。我本来想帮你圆一句,但她先开口跟我说‘没事’。方糖,你是知道她的——她那句‘没事’的意思,你比谁都清楚。”
方糖坐在沙发上,看着那两行字,觉得整个房间安静得有些不真实。窗外的风声、隔壁偶尔传来的电视声、楼下马路上的车鸣,都像是被一层玻璃隔在了很远的地方。她放下手机,看着窗台上那盆多肉。多肉还在那里,叶片依然饱满,在夜晚的灯光下泛着浅绿色的柔光。但她忽然觉得那盆植物像是隔着一层雾气在看,轮廓模糊了一些,颜色淡了一些。
她拿起手机,翻到程雪的对话框。最后一条消息是程雪昨天发的:“明天降温,多穿点。”方糖回了一个“好”。她看着那两个字,打了很久的字,最后只发了一句:“程雪,我想见你。”
程雪回得很快:“明天晚上?我去你那边。”
方糖说:“好。”
第二天晚上程雪来了方糖的出租屋。她穿了一件深色的呢子外套,围巾裹得很紧,进门的时候脸颊被冷风吹得有些发红。她把围巾解下来挂在门边,换了拖鞋,走进客厅,在沙发上坐下。
方糖倒了一杯热水放在她面前的茶几上,然后坐在她旁边。程雪没有碰那杯水,只是安静地坐着,目光落在窗台那盆多肉上。
“程雪。”方糖先开口。
程雪转过头看着她。她的表情很平静,没有生气,没有质问,只是安静地看着方糖,像是她已经做好了听任何话的准备。
方糖看着她,想了一会儿,然后说:“我跟林霜,见过几次面。技术活动上碰到的,有时候一起吃饭。没有别的。”
程雪点了点头:“我知道。”
方糖看着她:“你生气了?”
程雪沉默了几秒,然后说:“方糖,我不是生气。我是怕。”她的声音很平,但最后一个字的尾音有一点点不明显的颤动,像是被风碰了一下又迅速恢复了过来,“我怕你有一天坐下来跟我说,程雪,我选别人了。”
方糖看着她的眼睛,看到灯光在程雪的瞳孔里映出一小片光点,像是夏天夜晚还亮着的那盏灯,光线已经暗了,但还没人把它关掉。方糖伸手握住程雪的手指,她的指尖很凉,像是坐了太久的车,还没完全回暖。
“我不会跟你说的。”方糖说。
程雪低下头,看着方糖握着她的那只手,她的指尖慢慢弯起来回握住方糖的:“那你自己知道吗——你会选谁?”
方糖没有说话。她低下头,看着两只交握的手,程雪的手比她小一些,指尖的薄茧贴着她的手背。她想到林霜站在地铁口那盏灯下的样子,想到他说“那就够了”的时候轻轻点了一下头,想到他每次给她发技术问题时字里行间那种不多不少的距离。她想到程雪坐在她旁边时的安静,想到她煮面的时候会记得不放葱,想到她在开罗的天台上说“那你来”,想到她说“我怕你选别人了”。
她说:“程雪,我不知道。”
程雪低下头,沉默了很久。然后她松开方糖的手,站起来,走向门口,拿起挂在门边的那条围巾,一圈一圈绕回脖子上。她背对着方糖,声音有些闷,像是在围巾里含了一会儿才放出来:“方糖,等你知道了再告诉我。”
方糖看着她开门、走出去、把门轻轻带上的整个过程,没有追上去。她坐在沙发上,看着那扇关上的门,觉得整个房间忽然空了很多。窗台上的多肉还在那里,叶子绿着,但方糖觉得那道绿色比她记忆中的淡了一些。
她在那张沙发上坐了很久,不知道过了多久。然后她拿起手机,给林霜发了一条消息:“你上次说的那本书,我明天去拷。”
林霜过了几分钟才回:“好,明天下午我在公司。”
方糖看着那行字,没有回复。她把手机放下,靠着沙发靠背,闭上眼睛。她不知道自己刚才那句话算不算一个答案,也不知道自己到底想清楚了没有。她只知道程雪走的时候没有回头,而她没有追。
第二天下午方糖去了林霜的公司。她坐在他的工位旁边等他把文件拷出来,林霜操作电脑的时候没有说话,方糖也没有说话。窗外是杭州冬天的灰白色天空,光从窗户照进来,在桌面上落下一块长方形亮斑,像是一个无声的标记。
拷完之后林霜把U盘递给她。方糖接过来,手指碰到他指尖的时候她停了一下,然后她抬起头看着林霜:“林霜,我想好了。”
林霜看着她,等着她往下说。
方糖说:“我选你。”
林霜没有马上回答。他看了她几秒,像是在确认那两个字有没有被她说错,然后他点了一下头,很轻:“好。”
方糖把U盘收进口袋,站起来。她站在林霜工位旁边,看着窗外那片灰白色的天空。她觉得自己应该说点什么,但喉咙里像堵着什么,那些话怎么也聚不成完整的句子。她只是站在那里,听着自己的呼吸声,很平稳,像是有什么东西终于落定了。
那天晚上方糖回到出租屋,窗台上那盆多肉还在。她在窗台前站了一会儿,伸手碰了碰多肉最外面的一片叶子,触感依然是硬的、凉的。她拿起手机,给程雪发了一条消息:“程雪,我选好了。”
程雪没有回。方糖等了一会儿,又等了一会儿,手机屏幕始终没有亮起来。她把手机放在桌上,靠着窗台站着,窗外是杭州深冬的夜晚,路灯亮着,把对面楼的墙面照出一块暖黄色。她不知道程雪看到那条消息的时候是什么表情,也不知道程雪会不会回复。她只是觉得那盏路灯的光很暖,但她站的地方,离那道光还有一点距离。
那天晚上方糖睡得不好。第二天早上她醒来的时候,看到手机屏幕上有一条未读消息,是程雪发的,时间显示凌晨两点十七分。
只有一个字:“好。”
方糖看着那个字,看了很久。窗外的天光已经从灰白色变成了一种带着淡淡金色的晨光。她把手机翻了个面,扣在桌上,起床去洗漱。水龙头打开的时候水声很响,哗啦啦地流进洗手池里,她低着头看着那柱水流砸在白色的瓷面上溅开,觉得有什么东西也跟着那道水流一起流走了。
她没有哭。她只是站在那里,看着那道水一直流,像是永远不会停。
那个"好"字之后,程雪再也没有发过消息来。
方糖一开始还会时不时翻一下对话框,看看那条消息还在不在,像是确认它没有被撤回,确认那真的发生过。对话框里最后一条消息就是那个"好",孤零零地躺在那里,没有前文,没有后文,像一扇被轻轻带上的门,没有锁,但也没有人再推它。
方糖没有再去联系程雪。她知道程雪的脾气,那个"好"已经是她能给出的全部回答了。再多说一句,对程雪来说都是多余。
十二月底,杭州开始真正冷下来了。方糖和林霜在一起之后,日子并没有发生翻天覆地的变化。她们还是各自上班,偶尔周末见面,吃饭,散步,聊技术。林霜不会说很多话,但他会在方糖加班晚的时候发一条消息问"要不要帮你点个外卖",会在降温的时候提醒她多穿一件。他的关心方式和他写代码的方式一样,简洁、直接、不拖泥带水。方糖有时候觉得自己需要的就是这种简单,不需要猜测,不需要反复确认,不需要处理那些藏在话后面的情绪。
但有时候,她会在一些很平常的瞬间想起程雪。比如路过一家面馆的时候,比如看到有人端着一碗没有葱花的汤面从她面前经过,比如听到某首歌的前奏响起来。那些瞬间很短,像是一阵风从门缝里钻进来又消失,她甚至来不及分辨那阵风是凉的还是暖的。
一月初,方糖收到了一条消息。发消息的人是祁望,没有寒暄,直截了当:"程雪要走了。"
方糖看着那四个字,心跳停了一拍。她打字:"去哪?"
祁望说:"北京,有一个大厂的岗位,年后入职。她已经接了offer。"
方糖把手机放下又拿起来,反复了几次。她打了一行字:"她跟你说了?"
祁望回:"说了。她说想换个城市,换个环境,从头开始。"
方糖盯着那行字,不知道该回什么。她想起程雪以前说过的话,她说她不喜欢北京,太干了,冬天风很大,春天还会刮沙尘暴,她更喜欢杭州这种湿润的天气。那时候方糖觉得她们会一起留在杭州很久,久到她不再去想别的可能。现在程雪要去北京了,去那个她说过不喜欢的地方。
方糖打完又删,删完又打。最后她发了一句:"她什么时候走?"
祁望说:"年后吧,具体时间没定。方糖,你要是想送她……你自己决定。"
方糖看着那条消息,把手机放在桌上。窗台上那盆多肉还活着,叶子绿着,晒着冬天稀薄的阳光。那是程雪留给她的唯一一样东西。她看了一会儿,伸手碰了碰其中一片叶子,凉的,硬的,和程雪的手指一样。
她没有回复祁望。
年前最后一个周末,方糖去了一趟城西的超市,买了一些年货。拎着袋子出来的时候,她在门口看到一个人影,穿着灰色外套,背对着她,正蹲在地上系鞋带。方糖停住了脚步,觉得那个背影很像她认识的人。
那个人系好鞋带站起来,转过身,和方糖打了个照面。
是程雪。
两个人隔着几步距离站着,谁都没有说话。超市门口人来人往,有人推着购物车从她们中间穿过去,有人拎着大包小包匆匆走过。方糖看到程雪瘦了一些,脸颊的线条比以前更分明,眼圈有一点点发青,像是最近也没怎么睡好。
程雪先开了口,声音很平:"好巧。"
方糖说:"嗯,好巧。"
程雪看了看她手里拎的袋子:"买年货?"
"对,快过年了。"方糖说,"你呢?"
程雪把一只手插进外套口袋里:"我也买点东西。租的房子那边什么都要自己备。"
方糖张了张嘴,想问"你要走了是吗",但那句话卡在喉咙里没有出来。程雪看着她,像是在等她问,又像是在等她说点别的什么。风从两个人之间穿过去,把程雪的发尾吹起来又放下。
程雪说:"我年后去北京。"
方糖点了点头:"我听说了。"
程雪看着她:"你不问为什么?"
方糖沉默了一下:"你想说的时候会说的。"
程雪没有接话。她低下头,看着自己的鞋尖,像是忽然对那双旧运动鞋的某个磨损的细节产生了兴趣。过了几秒她抬起头,目光从方糖脸上移开,落在方糖身后那棵光秃秃的梧桐树上:"方糖,我不是因为赌气才走的。"
方糖没有说话,等着她往下说。
程雪的声音不大,但每一个字都像是经过反复确认才放出来的:"我考虑了很久。北京那个岗位,是我自己投的简历,自己面的试,没有人帮我。我想看看离开这里之后,我还能不能好好活着。"
方糖听着她说这些话,觉得那些字每一个都认识,但连在一起的时候分量比她想象的重很多。她想起程雪那天从她家走出去的背影,围巾在脖子上绕了一圈又一圈,像是要用那点布料把自己裹紧。她说"等你知道了再告诉我",而方糖最后给她的答案是那个"好"字。
"程雪。"方糖叫她的名字。
程雪抬眼看她。
"北京冬天很冷。"方糖说。
程雪愣了一下,然后嘴角微微动了一下,像是想笑但没完全笑出来:"我知道。我会买厚衣服。"
方糖说:"多穿点。"
程雪看着她,那抹已经泛起一半的笑意最终落定在她的眼角,很浅,像是被冷风吹出来的,又像是真的:"你也是,杭州冬天也挺冷的。"
她们又站了一会儿,谁都没有先走。最后还是程雪先迈了一步,往超市入口走去。她经过方糖身边的时候停了一下,没有转头:"方糖,好好过。"
方糖看着她的背影走进超市的玻璃门,门在她身后关上,把她和外面的冷风隔开了。方糖站在原地,拎着那袋年货,手被塑料袋的提手勒出一道浅浅的红痕。她等到那个背影消失在货架之间,才转过身,往地铁站的方向走去。
正月初三,方糖在家里吃饭。喵爱做了很多菜,桌子摆得满满当当。方铨铎坐在对面,偶尔夹一块排骨放到方糖碗里,不说什么话,但动作里有一种沉默的照顾。方糖低头吃饭的时候,听到喵爱问了一句:"程雪呢?好久没见她来了。"
方糖的筷子停了一下,然后她继续夹菜:"她去北京了。"
喵爱看了她一眼,没有追问。她只是点了点头,说了一句:"那你要好好的。"
方糖说:"嗯。"
那天晚上方糖坐在自己房间的床上,翻着手机通讯录。她看到程雪的名字,点进去,对话框还停在最后那个"好"字。她打了三个字:"新年好。"然后删掉了。又打了四个字:"你在干嘛。"又删掉了。最后她什么也没发,把手机放在枕头旁边,躺下来看着天花板。
她知道程雪不会发消息来。那个"好"字是她们之间最后的句号。没有逗号,没有省略号,就只是一个干干净净的句号,像是程雪用了全部力气画上去的。
二月中旬,方糖在朋友圈看到祁望发了一张照片。照片里是机场的出发大厅,落地窗外停着一架飞机,阳光照在机身上反射出刺眼的白光。配文只有两个字:"送人。"方糖看着那张照片,放大了看,想找找有没有熟悉的身影,但照片里只有行李推车和远处的登机口,没有程雪。
她没有留言,也没有点赞。她只是把那照片看了一会儿,然后退了出来。
那天晚上她坐在客厅里写代码,写到一半停下来,拿起手机翻到程雪的对话框,最后一次看了那一个"好"字。然后她长按对话框,点下了"删除好友"。
系统弹出确认框的时候,她的手指在上面停了三秒钟。然后她点了确定。
对话框消失了。
她把手机放在桌上,继续写代码。窗台上的多肉还在,冬天的阳光从窗户照进来,落在那些绿色的叶片上,看起来安静又完好。方糖看了一眼那盆多肉,觉得它应该还能活很久。
三月,杭州的春天又来了。路边的玉兰开了,白色的花瓣挂在光秃秃的枝头,像是还没准备好迎接春天就先开了花。方糖每天上班路过那条路,会抬头看一眼那些花。她和林霜保持着稳定的节奏,周末见面,偶尔一起吃饭,偶尔一起看电影,偶尔各自待在同一个空间里做各自的事情。她慢慢习惯了这种相处方式,不需要太多语言,不需要太多情绪起伏,一切都在一个平稳的轨道上,不会脱轨也不会颠簸。
但有时候她还是会想起程雪。不是那种尖锐的想念,而是像一种背景音,低低地响着,不注意就听不到,但偶尔安静下来的时候会发现它还在。
四月的一天,方糖收到了一条陌生号码的短信。她点开看了一眼,上面写着:"我到北京了。这边的玉兰也开了,比杭州的晚一些。"没有署名,但方糖知道是谁。她看着那行字看了很久,没有回复,也没有删掉。
她把手机收起来,继续走路。风从她身边吹过去,带来那种春天特有的气味——泥土、草叶、还有远处不知道谁家窗户里飘出来的油烟。她把手揣进口袋里,沿着那条种满玉兰的路继续往前走。她没有回头,但她的脚步比刚才慢了一些,像是那段路还想再多走一会儿,像是那些花还想再多看几眼。她的衣摆被风吹起来又落下,阳光落在她的肩上,暖洋洋的,她伸手碰了碰自己的肩头,像是替那阵风回应了一下。
窗台上那盆多肉还活着。方糖每天出门前看一眼,确定不用浇水,然后关上门,走进那一整个比她想象中更长的春天。她不知道程雪在北京过得好不好,不知道那边春天会不会刮沙尘暴,不知道她有没有买到厚一点的外套。她只知道她留了一扇窗没有关,风可以进来,也可以出去,而她已经很久没有回头看那扇窗了。但窗开着,这件事本身,也许就是她唯一能给出的回答。
四月底的一个周末,方糖和林霜约好去城南那条老街上走走。那条街方糖小时候跟喵爱和方铨铎来过很多次,后来长大了就再没去过了。前阵子喵爱在电话里随口提了一句:"你小时候最爱吃的那家糖炒栗子还开着呢,上次路过看到还在。"方糖听了之后记在心里,正好周末没什么事,就跟林霜说了,一起去看看。
那天天气很好,阳光不烈,风也不大,是杭州春天最舒服的那种日子。她们坐地铁到了站,走出来沿着老街慢慢往前走。路两旁的梧桐树已经长出了新叶子,嫩绿色的,在阳光下透亮得像薄薄的玉片。街边的小店还是老样子,卖糖炒栗子的、卖葱包烩的、卖定胜糕的,招牌旧旧的,门面窄窄的,和方糖记忆里的几乎一模一样。
方糖走得很慢,像是怕走快了会把什么震碎似的。林霜走在她旁边,没有催她,偶尔停下来看看路边的小摊,偶尔侧过头等她跟上来。她们走到那家糖炒栗子店门口的时候,方糖停住了脚步。店面还是那么小,门口摆着一口大铁锅,锅里的栗子在黑色的沙子里滚着,冒出焦甜的香气。店主是个头发花白的阿姨,正拿着大铲子翻动锅里的栗子,动作利落,和她小时候看到的那个画面叠在了一起。
方糖站在店门口看了一会儿,然后说:"我小时候我妈经常带我来买这家的栗子。"
林霜站在她旁边,也看着那口锅:"好吃吗?"
"好吃,特别甜。"方糖说,"但我妈不让我多吃,说吃多了上火。"
林霜从口袋里掏出手机,扫了摊前的付款码,对店主说:"阿姨,来一袋。"店主利落地装了一袋热乎乎的栗子递过来,林霜接过去,转手递给方糖:"那今天吃个够。"
方糖接过那袋栗子,隔着纸袋能感觉到栗子滚烫的温度,透过纸面传到她的掌心。她低头看着那袋栗子,然后抬起头看了林霜一眼,没有说谢谢,只是把那袋栗子抱在怀里,继续往前走。林霜走在她旁边,像是什么也没发生过。
她们沿着老街继续走。方糖一边走一边剥栗子,热乎乎的,又甜又糯。她剥了一颗递给林霜,林霜接过去吃了,什么也没说。她又剥了一颗自己吃,然后又剥了一颗递给林霜。她们就这样一路走一路分着那袋栗子,走到老街尽头的时候,纸袋已经空了一半。
老街尽头是一座小石桥,桥下的河水很浅,能看到水底的石头和偶尔游过的小鱼。方糖和林霜在桥边停下来,靠着栏杆看着水面。阳光从斜上方照下来,把河水照得亮晶晶的,像是有人在河底撒了一把碎玻璃。
方糖剥了最后一颗栗子,放在手心里,看着那颗饱满的栗子肉,圆圆的,金黄色的。她没有吃,只是看着它,像是在看一件需要认真想清楚的事情。
"林霜。"她开口。
林霜侧过头看她:"嗯?"
方糖把手里那颗栗子递给他,然后收回手,转过身面对着他。阳光从她背后照过来,在她肩上落了一层淡金色的光。她看着林霜的眼睛,那双眼睛透过银色细框眼镜看着她,很安静,像是一片正等着什么落下来的水面。她在心里想了一会儿要怎么把那些话摆好,然后说出口的句子比她想象中更直白一些。
"我想跟你一起住,想每天早上醒来的时候看到你坐在旁边写代码,想晚上下班回家的时候看到你已经把面煮好了。想跟你一起打比赛,一起写很难的题,一起卡住的时候互相说'回去重新想'。想把你的名字和我的名字写在同一本房产证上,想买一个窗户朝南的大房子,客厅里放两张桌子,一张是你的,一张是我的,我们各写各的代码,偶尔抬起头看一眼对方还在不在。"
她说到这里停了一下,看着林霜。林霜还是那副表情,但方糖注意到他握着桥栏杆的手指微微收紧了一点,指尖泛白。她继续说下去:"还想有一个人,我们的孩子,不管是男孩还是女孩,但如果是男孩的话,我想叫他霜糖。你的霜,我的糖。"
林霜站在那里,安静了很久。桥下的水还在流,远处有自行车铃铛响了几声,老街上的烟火气在他们身后飘荡,像是这座城市正从一场漫长的沉睡中逐渐苏醒。然后林霜伸出手,把方糖手心里那颗已经有些凉了的栗子拿起来放进自己嘴里,嚼了嚼咽下去。
他看着她,声线平稳,像是说的每一句都事先在心里安放好了,只等着这一刻:"你刚才说的那些,每一条我都答应你。大房子,朝南的窗户,两张桌子。把名字写在同一本房产证上。还有霜糖。你说到霜糖的时候,我的心跳快了。我想跟他一起写代码,想教他打比赛,教他数据结构,教他写第一个'Hello World',想看着他学会你说的那些名字和那些词,想让他知道什么叫'从最基础的地方开始想'。"
方糖看着他,觉得站在桥上的那一刻,整个世界都安静下来了。河水流动的声音、远处街市的嘈杂、头顶树叶被风吹过的摩擦声,都像是被推远了一些,只剩下他和她站在那一小片光里。
她走过去,把额头抵在林霜的肩膀上。她的鼻尖碰到他卫衣的布料,闻到洗衣液淡淡的香味,混着一点栗子的焦甜。她的手绕过他的腰,轻轻攥住了他背后的衣料。她说:"那说好了。"
林霜的手落在她的后背上,掌心贴着她的肩胛骨:"说好了。"
那天傍晚她们坐在石桥边的一棵树下,把那袋栗子吃完了。林霜把最后一颗栗子肉剥出来递给方糖,方糖接过来掰成两半,一半放进自己嘴里,另一半递到他嘴边。他吃了,嘴角沾了一点栗子的碎屑,方糖伸手替他抹掉了。他的手抬到半空中,顿了一下,然后落在她手腕上,指腹贴着她的脉搏,像是在确认她还在。
方糖没有抽回手。她靠着树干坐着,林霜坐在她旁边,两个人之间隔着一只手掌的距离。远处的天色正在从浅蓝变成淡橘色,云被烧成薄薄的金边,一点一点往夜幕的方向收拢。有路人从她们面前经过,看了一眼,又走过去了。方糖觉得那段路像是被谁用笔描浓了一点,走在其间的每一步都更清晰、更确切。
回家的时候天已经黑了。方糖坐在出租车上靠着窗,看着窗外掠过的路灯和行人,把手里空掉的栗子纸袋叠好放进口袋。林霜坐在她旁边,手机屏幕的光映在他的侧脸上,他正在备忘录里打字。方糖侧过头看了一眼,看到他正写着:"窗户朝南,两张桌子,霜糖。"方糖笑了一下,没有出声。她靠回椅背,闭了一会儿眼睛,觉得这一天的风、阳光、栗子的甜味和桥上的那些话,都是可以被收起来的。把它们叠好,放进胸口某个靠近心跳的位置,等到需要的时候再取出来看。
窗外的城市灯火一盏一盏地亮起来,像是春天里最后开的那一批花,终于等到了自己的时刻。
那袋栗子吃完之后的那个夏天,方糖和林霜一起搬进了新租的房子。房子在城西,离两个人的公司都不远,两室一厅,窗户朝南。搬进去那天阳光很好,透过落地窗照进客厅里,把木地板晒成暖融融的金色。方糖站在客厅中央,看着那扇窗,忽然想起她跟林霜在桥上说的那些话——窗户朝南,两张桌子。现在窗户有了,桌子还差一张。
林霜从卧室里走出来,手里拎着两个快递盒:"桌子到了,下午装。"方糖说:"你先拆,我去拿螺丝刀。"
她们花了一整个下午组装那两张桌子。拼装说明写得不够清楚,她们对着图纸研究了好久,林霜负责读说明,方糖负责拧螺丝。拧到第三颗的时候方糖发现自己把桌腿装反了,林霜看了她一眼,没有说"你弄错了",只是把图纸转了个方向放在她面前。方糖低头看了看,默默把桌腿拆下来重新装。她们没有吵,甚至连抱怨都没有,像是两个习惯了和代码打交道的人面对一套实体说明书时,自然地切换到了调试模式——找出bug,修复,重新运行。
桌子装好之后,她们把两张桌子面对面放在客厅靠窗的位置。方糖把自己的电脑放上去,林霜把他的也放上去。两台电脑屏幕相对,像是两个隔着一小片空间互相注视的人。方糖坐在自己的桌前,抬起头就能看到林霜的屏幕背面,和林霜偶尔从屏幕边缘露出来的半张脸。她觉得这个画面很好,像是她早就知道会有这么一个时刻,只不过等到今天才亲眼看到。
八月,方糖和林霜一起去参加了一场线上的算法比赛。不是什么大赛,是一个技术社区组织的月度赛,没有奖金,没有证书,纯粹是写着玩。她们各自坐在自己的桌前,戴着耳机,面对各自的屏幕。比赛开始之后键盘声响成一片,方糖听到林霜的敲击节奏比她快一些,偶尔停下来想一会儿,又继续敲。她也保持着稳定的节奏,不急,不慌,像是在跑一段她已经跑过很多次的路,知道哪里该加速,哪里该稳住。
比赛结束后,她们各自提交了代码。方糖看了一眼排名页面,她排在第十九位,林霜排在第十四位。她在椅子上伸了个懒腰,探过头去看林霜的屏幕:"你第三题怎么做的?"林霜侧过身给她看代码。她凑过去看了几行,觉得他的思路比她的简洁一些,她低头在自己的屏幕上改了几行,试着跑了一下,通过了。
林霜在旁边看着,说:"你也可以这样做。"方糖说:"现在知道了。"她靠在椅背上,看着窗外已经暗下来的天色。杭州夏天的傍晚很长,即使到了晚上八点多,天边还留着一线浅橘色的光。她看着那道光,忽然觉得她喜欢这种生活的节奏——白天上班,晚上回来写点自己的代码,偶尔和身边那个人比一场。不需要为了什么名次,不需要为了进省队或者拿奖牌,只是因为她喜欢。
九月中旬,方糖和林霜去了一趟建材市场。她们开始看房子了,不是马上要买,但想先了解一下行情。林霜提前做了一些功课,手里拿着一张打印出来的表格,上面列着几个小区的名字和均价。她们沿着市场外的街道走了一圈,看了几家中介挂出来的户型图。最后在一家店的橱窗前停下来,方糖指着其中一张图:"这个户型,三室两厅。那间朝南的次卧,可以给霜糖住。"
她说出"霜糖"那两个字的时候,语气和说"这个户型""朝南的次卧"一样平常,像是在陈述一个已经确定的事实。林霜站在她旁边,没有接话,但他伸出手指,在橱窗玻璃上那间次卧的位置轻轻点了一下。方糖看到他的指尖在玻璃上留下一小圈浅浅的雾气,然后消散了。
那天晚上回家之后,方糖坐在书桌前,打开一个空白文档,犹豫了一会儿,开始打字。她写了一封邮件,收件人是程雪。邮件内容不长,只有几段话。她说了自己最近的生活,说了和林霜在一起的日常,说了她们正在看房子,说了她们想有一个叫霜糖的孩子。她没有说"对不起",也没有说"你还好吗",只是在最后写了一句:"杭州的玉兰今年开得很好,不知道北京的是不是也开了。"
她想了想,删掉了最后那句,改成:"希望你也过得好。"
然后她点击了发送。
邮件发出去之后,方糖靠在椅背上,看着窗外。夜色已经完全暗下来了,路灯在远处亮着,把对面楼的墙面照出一块暖黄色的光斑。窗台上那盆多肉还在,叶子依然饱满,在灯光下泛着浅绿色的光泽。方糖看了一眼,伸手碰了碰最外面那片叶子,硬的,凉的,稳稳地长在那里。
林霜从厨房里走出来,端了两杯茶。他把其中一杯放在方糖手边,自己端着一杯坐在对面那张桌子前。他看了一眼方糖的屏幕,没有问她刚发了什么。他打开自己的电脑,开始看明天的项目文档,像是那一小片沉默是他留给她的一座安静的、不必解释的院子。
方糖端起那杯茶喝了一口,温热的,正好。她把屏幕上的邮件页面关掉,打开一篇技术文章,开始看。客厅里很安静,只有两盏台灯的光和偶尔响起的键盘声。方糖抬起头看了一眼林霜,他正低头看着屏幕,银框眼镜的镜片反射出淡淡的光。她低下头,继续看自己的文章。
十月初的一个傍晚,方糖收到了一封回信。她看到发件人的名字时心跳漏了一拍,点开之后发现信很短,只有三行。程雪说她在北京挺好的,换了一个项目组,工作不算忙,周末偶尔会去公园走走。她说北京也有玉兰,三月底开的,花期比杭州短一些,但开的时候也很好看。信的末尾没有署名,没有问候,只是一个干干净净的句号。
方糖把那封信看了三遍,然后把它存进了一个单独的文件夹里。她没有回复,但她觉得那个句号像是一个信号,告诉她程雪也在往前走,走得不快,但一直在走。她关上电脑,站起来走到窗边。外面的天色正在暗下来,远处的高楼里亮起了一盏又一盏的灯。方糖看着那些灯,觉得每一盏后面都有一个人在生活着,在吃饭,在看书,在写代码,在等什么人回家。
她转过身,看到林霜正坐在他的桌前,盯着屏幕,眉头微微皱起,像在调试一段出了问题的代码。方糖走过去,站在他旁边,低头看了一眼他的屏幕:"卡在哪了?"林霜指了指其中一行:"这里返回值类型写错了。"方糖说:"改成向量。"林霜改了一行,重新跑了一遍,通过了。他抬起头看了她一眼:"谢了。"
方糖说:"不客气。"
她走回自己桌前坐下,打开电脑,继续写自己的代码。窗外的夜色在慢慢变深,远处的灯光在一盏一盏地亮起。方糖觉得这个夜晚和其他夜晚没什么不同,但今天不同。今天她收到了程雪的信。那些话像是一块石头终于落了地,她知道程雪在往好的方向走,而她也在往好的方向走。她们各自走着各自的路,但那两块石头都落在地面上,在那片不知道属于谁的土地上,稳稳当当的。
日子继续往前走。十一月,方糖和林霜签了买房合同。房子不大,三室两厅,次卧的窗户朝南。交完首付那天她们在小区门口的便利店买了两瓶汽水,站在路边碰了一下瓶口,发出清脆的声响。方糖喝了一口,觉得汽水的气泡在舌尖上炸开,带着一种清凉的甜味。林霜站在她旁边,把喝了一半的汽水瓶握在手里,瓶壁上的水珠沿着他的手指往下滴。方糖低头看了看他握着瓶子的手,指节分明,指尖有薄薄的茧,是敲了很多年键盘之后留下的痕迹。她伸手碰了一下他的手指,说:"走吧,回家。"
十二月,霜糖还没有来。方糖和林霜商量过,她们想等房子装修好、一切都安顿下来之后再开始准备这件事。方糖不着急,她知道有些东西需要时间,就像那盆多肉,给它足够的光和适量的水,它就会自己慢慢地长。她们坐在客厅那两张桌子前写代码的时候,方糖偶尔会抬起头看一眼对面那张桌子。林霜有时候在写代码,有时候在看文档,有时候什么也不做,只是靠着椅背闭着眼睛,像是在想一道题,又像是什么都没想。方糖看着他的时候觉得这一切已经足够了,就像她在桥上说的那些话,每一条都在慢慢变成真的。
窗台上那盆多肉又长出了几片新的叶子,嫩绿色的,边缘带一点点淡红,在冬天的阳光下舒展着。方糖每天早上给它浇水的时候会多看它一眼,像是看一个老朋友正在慢慢地醒来。
一月初的一个晚上,方糖坐在客厅里,面前摊着一本旧笔记本。她翻到其中一页,看到自己很久以前写下的一句话:"对的人也许不会出现,但春天每年都会来。"她看着那行字,字迹已经有些褪色了,墨水在纸上晕开了一点,但还能看清。她在那行字下面加了一句:"春天会来,人也会来。有时候人是跟着春天一起来的。"
她合上笔记本,站起来走到窗边。外面正在下今年的第一场雪,雪花不大,稀稀落落地飘着,在路灯的光里看起来像是细细的银针。方糖看着那些雪,觉得这个冬天和以前的冬天都不一样。不是因为她有了一扇朝南的窗户,不是因为桌子对面坐着一个人,不是因为霜糖还在路上。是因为她在很长很长的路上走着走着,终于走到了一个可以停下来坐一会儿的地方。那个地方有一扇窗,窗外有雪,窗内有光。她坐在那里,觉得前面的路还很长,但她不再急着赶路了。
她转过身,看到林霜正站在她身后,手里端着一杯热水。他把杯子递给她,她接过来喝了一口,温热的,手心贴着杯壁慢慢暖起来。林霜站在她旁边,和她一起看着窗外那些细细的雪。他伸出手,碰了碰她的手指。方糖没有低头看,但她把手指弯了弯,扣住了他的。
窗外的雪还在下。窗台上的多肉在灯光下泛着浅绿色的光泽。远处的城市轮廓在雪夜里变得模糊又柔和,像是被谁用橡皮轻轻擦了一下边缘。
方糖站在那里,觉得这就是她想要的全部了。冬天的雪,春天的玉兰,夏天的蝉鸣,秋天的落叶。她身边有一个人愿意陪她看这些,窗外有一扇朝南的窗,窗台上有那盆已经长得很大了的多肉,还有一张空着的婴儿床——那是她留给霜糖的位置。她不知道霜糖什么时候会来,但她知道那扇窗会一直开着。
她把杯子放在窗台上,转身走回桌前坐下。林霜也回到自己的位置上,两台电脑屏幕重新亮起来。她们各自看着各自的屏幕,键盘声在房间里响起,像一段平稳的、不会停下来的旋律。方糖写了几行代码,停下来抬起头看了一眼对面。林霜正低头敲着键盘,他的侧脸被台灯的光照亮,银框眼镜的镜片上映着两行小小的代码。方糖看了两秒,又低下头,继续写自己的东西。
窗外的雪还在下,轻轻地、慢慢地落在窗台上,落在那些还没有被覆盖的地面上。方糖觉得那些雪很轻,轻得像是一个还没有被说出口的名字,但她知道那个名字会被说出来,在某个春天,在某个阳光很好的早晨。
她听到风声从窗户的缝隙里钻进来,轻轻的,像是一句还没有完全成型的话。她不知道那句话会是什么,但她知道她已经准备好了。准备好了迎接春天,迎接那个叫霜糖的孩子,迎接她和林霜一起写的那些代码,一起吃的那些饭,一起看过的那些天亮又天黑的日子。窗台上那盆多肉在最冷的时候也依然绿着。方糖想,她也一样。她知道自己会一直往前走,带着那盆多肉,带着那扇朝南的窗,带着那个还没有到来但一定会到来的春天。
方糖和林霜的婚礼定在四月的一个周六。
那天杭州的天气好得不像话,天空是那种被洗过很多次的浅蓝色,阳光不烈,风很轻,玉兰花开得正好,整条街都是白色的花瓣在风里轻轻摇晃。方糖站在酒店二楼化妆间的窗前,看着楼下那棵正在盛放的玉兰树,觉得这个日子选得刚刚好——春天还没走完,夏天还没来,所有东西都停在最合适的位置上。
化妆师正在她身后整理头纱的褶皱,方糖透过镜子看到自己的脸,化了淡妆,嘴唇上涂了一层浅色的口红,看起来比平时精神一些,但她还是觉得镜子里那个人不太像自己。她低头看了看身上的婚纱,白色的,裙摆不太长,刚好到脚踝,是她自己挑的。她不太想要那种拖得很长的,走起路来不方便,她还想着等会儿能不能抽空去吃点东西。
门被推开了。方糖从镜子里看到喵爱走进来,穿着一条深蓝色的裙子,头发盘起来,比平时正式一些。她走到方糖身后,双手扶住她的肩膀,从镜子里看着她的脸。
"好看。"喵爱说。
方糖说:"有点不习惯。"
喵爱笑了一下:"习惯什么?你穿什么都好看。"她从口袋里掏出一对耳环,银色的,小小的,在灯光下微微反光,"你外婆留给我的,我结婚那天戴过。今天给你戴。"
方糖低头看着那对耳环,银色的,花纹很细,像是很多年前手工敲出来的。她没有说话,只是侧过头让喵爱帮她戴上。喵爱的手指擦过她的耳垂,有一些凉,动作很轻,像是怕弄疼她。
戴好之后喵爱退后一步,看了看,然后伸手帮方糖把一缕散下来的头发别到耳后:"你爸在外面等着呢,他紧张得来回走了好几圈了。"
方糖笑了一下:"他有什么好紧张的。"
喵爱说:"他女儿结婚,他紧张不是很正常吗。"她拍了拍方糖的肩膀,转身走了出去,走到门口的时候停了一下,回过头:"小糖,妈妈很高兴。"
方糖说:"我也是。"
门关上之后房间里安静下来。方糖站在镜子前,看着自己戴着外婆那对银色耳环的样子,觉得那两点银光像是两个很小很小的锚点,把过去的那些人和事和她现在站的位置连在了一起。她想起外婆的样子,想起喵爱年轻时候的照片,想起很多年前坐在客厅里看旧相册的那些下午。时间像是一条河,她不站在河里了,但她能感觉到水还在流。
门又被推开了,这次是方铨铎。他穿着深灰色的西装,领带系得板板正正的,但方糖注意到他左手的袖扣扣反了。她指了指自己的袖口示意了一下,方铨铎低头看了一眼,重新扣了一遍。他走到方糖面前站定,看了她好一会儿,然后说:"你妈说得对,好看。"
方糖说:"你袖扣扣对了没有?"
方铨铎低头看了一眼:"对了。"
方糖笑了一下。方铨铎看着她,像是想说什么,嘴唇动了动又合上了。他伸出手,不太熟练地碰了碰方糖的肩头,像是怕碰碎了什么:"小糖,爸祝你们好好的。"
方糖说:"嗯,会的。"
方铨铎点了点头,转身走出去。方糖看到他在门口停了一秒,抬手飞快地碰了一下眼角,然后推门出去了。方糖假装没看到。
十点四十分,婚礼开始前二十分钟。方糖站在走廊拐角,透过半开的门缝看了一眼宴会厅里面。桌子已经摆好了,白色的桌布,中间放着小小的花束。最前面那排坐着喵爱和方铨铎,方铨铎正在跟旁边的一个人说话,方糖认出那是铝の——穿着浅灰色的衬衫,头发比上次见面时又白了一些,坐在那里,安静地听着方铨铎说什么,偶尔点一下头。
方糖看到铝の的侧脸,想起很多年前那个天台的夜晚,想起他说"后来我发现你不是他,你是你自己",想起他站在酒店门口看着她离开的背影。她不知道他这些年过得怎么样,但她看到他在她的婚礼上,坐第一排,穿着一件干净的衬衫,像是专门为这一天准备过的。方糖觉得这就够了。
宁嘎狗和吃饭坐在第三排。宁嘎狗正在低头看手机,大概在看自己发的朋友圈有多少人点赞。吃饭坐在他旁边,还是一副面无表情的样子,但他的手搭在宁嘎狗的椅背上,指尖轻轻碰着宁嘎狗的后颈。宁嘎狗没有抬头,但他微微往后面靠了一点,靠在吃饭的手指上。方糖看到那个画面,觉得这么多年过去了,这两个人还是用一种不动声色的方式在靠近彼此。
bunH2O坐在她们后面一排,正在举着手机对着宴会厅的天花板拍照。他旁边坐着祁望,方糖通过朋友认识的那个人,两个人似乎聊得挺投机,bunH2O拍完一张照片就侧过头跟祁望说什么,祁望笑了一下。方糖不知道她们是怎么认识的,但看样子应该认识了有一阵子了。
再往后几排,方糖看到了郭天依和裴嘉明坐在一起,郭天依正在跟旁边的人说话,裴嘉明安静地坐着。还有几个集训队时期的熟面孔,方糖叫不出全部名字,但看到那些脸的时候心里会有一种模糊的暖意,像是在翻一本很久没看的旧相册,每一页都认识,但又记不全具体的日期。
方糖收回目光,转过身,靠在走廊的墙上。她听到宴会厅里的音乐换了一首,柔和的钢琴曲,像是春天末尾的风穿过树叶的声音。她的手心微微出汗,她把手心贴在裙摆上擦了擦。
林霜从走廊另一头走过来。他穿着白色西装,比平时正式得多,领结打得不太正,像是他自己对着镜子系的,没太成功。他走到方糖面前停下来,低头看了她一眼:"你看起来像在想跑。"
方糖说:"有点。"
林霜说:"跑不掉的,我交了定金了。"
方糖笑了一下,伸出手把那颗歪掉的领结拆开重新系了一遍。她系得也不太好,但比刚才顺眼一些。林霜低头看着她的手:"你紧张吗?"
方糖说:"有一点。"
林霜说:"我也是。"
她们并肩站了一会儿。走廊尽头有一扇窗户,阳光从那里照进来,把两个人面前的那块地板晒得发亮。方糖低头看着那块光斑,觉得那道光很暖和,像是有人在很远的地方替她们把路照亮了。
音乐声变了节奏。有人从宴会厅里探出头来,冲她们比了一个手势。
方糖看了林霜一眼,林霜伸出手。方糖把手搭上去,他的手掌是干燥的,指尖微微发凉,和她的一样。她们握着手,一起走进了那扇门。
门推开的那一瞬间,宴会厅里的光涌了过来。方糖眯了一下眼,看到所有人都转过头看向她们。喵爱坐在第一排,眼眶已经红了,但嘴角在笑。方铨铎坐在她旁边,表情严肃,但方糖看到他的手正握成拳放在膝盖上。铝の坐在方铨铎旁边,安静地看着她们,目光平静,嘴角有一个很淡很淡的弧度,像是整个世界的重量都终于落在了合适的地方。
宁嘎狗站起来鼓掌,bunH2O跟着站起来,然后整个宴会厅的人都站起来了。掌声像是从远处涌来的潮水,一阵接一阵,拍在方糖的耳膜上。方糖看着那些站起来的人,忽然觉得这些面孔里有一大半她并不知道名字,但她们都愿意在这个春天的下午来见证她站在这里。她低头看了一眼自己的白色裙摆,觉得那一点重量刚好压住她因为紧张而微微上浮的心跳。
林霜握紧她的手。她们一起走到最前面站定。主持人的声音在麦克风里响起来,带着那种婚礼主持人特有的温和上扬的语调。方糖听着那些话,大部分没有听进去,她只是站在那个位置看着台下的人。她看到喵爱正侧过头跟方铨铎说话,嘴唇动着,方铨铎在点头。铝の安静地坐着,目光落在她身上,那双眼睛依然很亮,在宴会厅的灯光下像两颗被水洗过的石子,清透得像是装着整个过去。方糖迎着他的目光看了回去。铝の轻轻点了一下头,很轻,像是只有她一个人能看见。方糖也轻轻点了一下头,没有人注意到这个对视。
到了交换戒指的环节。林霜从口袋里掏出那枚银色的戒指,方糖的手微微有些发抖,她伸出手的时候看到自己的指尖在轻轻颤动。林霜握住她的手,把戒指慢慢推进她的无名指。他的动作很稳,像是敲了一行很重要的代码,每个字符都确认过三次。戒指戴好之后方糖低头看了一眼,银色的光圈在灯光下有一小圈柔和的反光。
她掏出另一枚戒指,戴在林霜手上。她戴得比他快一些,像是怕慢了就会反悔。戴好之后她抬起头看了他一眼,林霜的表情没有任何变化,但方糖注意到他的耳朵红了,和他第一次牵她手的时候一样。
然后是签字的环节。长长的签字台摆在侧面,上面铺着红色绒布,放着一本翻开的册子和一支笔。方糖走过去坐下,握着笔,在属于自己的位置签下了自己的名字。她的字不太好看,一笔一划都写得老实,像是第一次写自己的名字那样认真。林霜签在她旁边,他的字比她好看一些,最后一笔拉得略长,微微拖进她名字的领地。方糖低头看到两个名字中间连着一道浅浅的墨痕,像是他们用笔尖在纸上也牵了一次手。
签完字之后方糖站起来,转过身看着台下的人。掌声又响起来了,比刚才更热烈一些。她站在灯光下,忽然听到有人喊了一声她的名字。她循着声音看过去,看到bunH2O正举着手机冲她喊:"方糖!看这边!"她笑了一下,看到祁望在旁边伸手拉bunH2O的袖子,像是在说"你安静点"。bunH2O没有安静,他又喊了一声:"祝你们生一个叫霜糖的!"方糖听到旁边有人笑了。
方糖没有回答。她转回头,看到林霜正站在她旁边,也在看着台下那些喧闹的人。她侧过头看了他一眼,林霜像是察觉到她的目光,也侧过头来。他说:"你刚才签字的时候写得太用力了,纸都印到下一页了。"方糖说:"你写得好你写。"林霜说:"我写完了。"
她们并肩站在签字台前面,看着台下那些还在鼓掌的人。方糖在人群里又找了一遍铝の,他还在那里,坐在方铨铎旁边,浅灰色衬衫的领口在灯光下泛着一点点珠光。他没有鼓掌,他只是安静地坐着,像一棵冬天的树,知道春天迟早会来,不需要催促。他的目光落在方糖身上,那里面有方糖认识的东西——和很多年前天台上的一模一样,带着祝福和遥远的光,像是她走过的所有路都被他看在眼里。
方糖收回目光,握了握林霜的手,觉得脚下的地面很稳,头顶的光很暖。窗外的玉兰花正开得满树都是,白色的花瓣在风里轻轻晃动,像是在替她轻轻翻着一本还没有读完的书,翻过今晚,翻过婚宴,翻过那些终于落定的目光,翻开属于她们的那一页。
婚礼宴席散场的时候,天色已经擦黑。 宾客陆续离场,喧闹一点点从宴会厅抽走,只剩下满地零落的花瓣,还有桌椅挪动的轻响。方糖摘掉头上沉重的头纱,随手搭在椅背上,耳后被发箍勒出一道浅浅红印。她揉了揉后颈,长长吐出一口气,像是把紧绷一整天的那根弦彻底松开。
林霜站在她身侧,已经把西装外套脱下来搭在臂弯,领结也解开松垮挂在领口,少了仪式上的拘谨,又变回那个习惯敲代码的模样。他递过来一瓶温的矿泉水:“累不累。”
“脚酸。” 方糖低头看了看脚上的高跟鞋,鞋跟磨得脚踝发红,“早知道就不穿这么高的。”
“回去换拖鞋。” 林霜说。
不远处,喵爱正和方铨铎跟铝の道别。 铝の还是那件浅灰色衬衫,袖口熨得平整。他没有留下来吃晚宴,只参加了仪式部分。方铨铎和他站在台阶下,两个人说话声音压得很低,听不清具体字句,只看见偶尔点头。这么多年的隔阂、旧怨、少年时代拧成死结的往事,到此刻,都化作几句平淡寒暄。
铝の抬眼,恰好对上台阶上方方糖的视线。 暮色漫过他鬓角泛白的发丝,他微微抬手,很轻地挥了一下,算作最后的告别。没有多余的言语,没有上前,隔着几步人潮。方糖也朝他轻轻颔首。 有些故事不必重提,相逢见证一次圆满,就足够画上句点。而后铝の转身,融进傍晚的车流之中。
宁嘎狗和吃饭还没走。 宁嘎狗一身休闲西装,脸颊泛着酒意,手里攥着半杯果汁,压根没碰酒。吃饭安安静静陪在他边上,外套搭在胳膊,目光大半落在宁嘎狗身上。 “可以啊方糖,终于把大事办完。” 宁嘎狗走上前,笑意明晃晃的,“我还记着奶龙训练营,你拖着行李箱推开 303 房门那一天,一晃这么多年。”
方糖笑:“你记性倒是一直很好。”
“那可不。” 宁嘎狗侧头撞了撞吃饭肩膀,“再过两年,说不定就轮到我们。” 吃饭耳尖微微泛红,没接话,只是伸手不动声色扶了一把快要站不稳的宁嘎狗。
bunH2O 和祁望跟在后头,bunH2O 手机相册塞满一整天拍的照片,还在不停翻预览。 “说真的,霜糖这个名字我可记牢了!以后小孩出生我要当干爹。”bunH2O 兴致勃勃。 祁望伸手扯了扯他袖子,无奈叹气:“你少说两句。”
几个人站在酒店门口晚风里,聊了一小会儿。晚风裹挟着晚春残留的玉兰花香,吹过每个人肩头。旧时光里集训机房键盘噼啪声响,模拟赛焦灼的夜晚,NOI 赛场的忐忑,那些少年时代跌跌撞撞的片段,都沉淀成此刻松弛的闲谈。
陆续道别。 宁嘎狗和吃饭打车离开,bunH2O、祁望也结伴离去。喵爱与方铨铎拍了拍方糖肩膀,叮嘱早点回家,也驱车返程。
喧嚣散尽。 方糖坐上林霜的车,脱掉高跟鞋,光着脚蜷在副驾。车窗半降,晚风涌进来,拂过发烫的脸颊。城市灯火一路向后流淌。
新家在城西,那套朝南的三室两厅。 打开家门,暖黄的灯光即刻涌出来。客厅两张并排靠窗的书桌安安稳稳立在原处,电脑静静待机。窗台上那盆陪伴了无数岁月的多肉,叶片肥厚舒展,在灯光下漾开温润的绿。装修的余味早已散尽,屋子里弥漫淡淡的洗衣液清香。
林霜把西装丢在沙发,转身去厨房。冰箱里提前备好简单的宵夜,两碗清汤面,没有葱。 方糖靠在厨房门框,静静看着他的背影。曾经无数个深夜,程雪也是这样站在这里煮面,那段回忆依旧安放在心底某个角落,不再尖锐疼痛,只是一段真切过往。人总要带着全部回忆往前走,不是遗忘,是和解。
“在想什么。” 林霜一边搅动锅里汤水,回头问她。
“在想,居然真的走到今天。” 方糖轻声说,“当年在奶龙训练营,我满脑子只有省选、NOI、拿牌,从来没想过往后日子会是这般模样。”
锅里汤水轻轻沸腾,升腾薄薄白雾。 “竞赛只是人生一段路,不是全部。” 林霜盛出两碗面,端到客厅餐桌,“做题会有 WA,人生也一样,不是每一次提交都能直接 AC。”
方糖坐下,拿起筷子。面条温热,落进胃里,整个人都松弛下来。
夜里,洗漱完毕。 方糖站在窗台前,指尖轻轻触碰多肉饱满叶片。手机叮咚一声,一封陌生邮箱邮件弹出来。 发件人,程雪。
方糖心头微动,点开。 邮件篇幅不长。
方糖: 看到你婚礼的照片,祁望发给我的。一切都很好。 北京今年春天的玉兰也谢完了。项目进入新阶段,日子过得充实。偶尔会去奥林匹克森林公园跑步,风很大。 过去种种,不必介怀。我已经慢慢和自己和解。曾经放弃 IOI 名额,不是全然为了你,也是当时的我自己走在岔路口。遗憾有,但不后悔。 祝你和林霜平安顺遂,也祝未来的霜糖平安喜乐。 勿回复。
末尾没有署名。
方糖一字一句读完,指尖轻轻划过屏幕。没有回复,顺从她 “勿回复” 的意愿。将邮件归档收进那个专属文件夹。 人与人之间到这里,恰到好处。曾经热烈相爱,而后走散,不必纠缠,不必互相亏欠,遥遥祝愿,各自奔赴山海。
关掉邮箱,放下手机。 林霜走过来,从身后轻轻环住她,下巴轻搁在她发顶。窗外夜色深沉,城市万家灯火点点闪烁。
“看邮件?” 他低声问。
“嗯,程雪发来的。” 方糖靠在他胸膛,“她在北京过得挺好。”
“那就好。” 林霜没有多追问过往,只是收紧手臂,“不去想别的,我们过我们的日子。”
春去夏来。 婚后的日子没有轰轰烈烈,是细碎安稳的日复一日。 工作日,两个人各自通勤上班。傍晚回到家中,两张靠窗书桌,并肩而坐。键盘此起彼伏的敲击声成为家里最寻常的背景音。遇到代码 bug,会凑到一块屏幕前,一同梳理逻辑,卡住的时候,也会玩笑一般,回到原点,从最基础的地方重新思考。
周末偶尔会出门。重新逛那条老街,再买一袋热乎乎糖炒栗子;也会去图书馆,泡上一整个下午;有时候哪里也不去,就在家里收拾屋子,摆弄窗台上的多肉,又添置几盆新的绿植。
盛夏某个傍晚。 方糖坐在书桌前,写完一段代码,保存文件,伸一个大大的懒腰。夕阳穿过落地窗,铺满客厅地板,金红色的光漫过桌面。 林霜刚刚结束线上会议,合上笔记本,转头看向她。
“有件事,跟你说。” 方糖看向他,眼底带着浅浅笑意,伸手递过去一张试纸。
林霜愣了一瞬,目光落在试纸上面两道浅浅的红杠。 平日里冷静克制的人,指尖微微绷紧。他拿起试纸,反复确认两遍,抬眼看向方糖,声音都带上一丝不易察觉的颤抖:“霜糖,要来了?”
“嗯。” 方糖点头,“刚刚测出来,打算下周去医院确认。”
林霜快步走过来,在她身边蹲下,手掌轻轻覆在她尚且平坦小腹,动作小心翼翼,仿佛对待一份无比珍贵的代码成果。夕阳落在他侧脸,银框眼镜反射落日柔光。
“太好了。” 他低声说。
之后的日子多了许多细碎的小心。 改掉熬夜写代码的习惯,家里常备新鲜水果。喵爱隔三差五打来电话,叮嘱饮食起居,时不时送过来炖好的汤。方铨铎话依旧不多,默默查了不少孕期科普文档,转发给林霜。
秋天,医院检查确认,是一个小男孩。 回家路上,晚风扫落街边梧桐金黄的落叶。 “真的要叫霜糖吗。” 林霜开车,等红灯的时候侧过头问。
“说好的。” 方糖笑,“你的霜,我的糖。”
“行。” 林霜应允,“小名霜糖,大名我们再慢慢翻书斟酌。”
冬雪再度降临杭州。 窗台上的多肉安然熬过寒冬,叶片厚实饱满。婴儿房已经收拾妥当,朝南的次卧,小床、绘本、小小的编程启蒙玩具,一一摆放整齐。墙上贴了一张趣味算法卡通海报。
除夕夜。 家里灯火通明。喵爱、方铨铎过来一起吃年夜饭。满桌菜肴热气腾腾。 饭桌上,喵爱不停给方糖夹温和的菜。方铨铎举起杯子,白开水代替酒水。 “期待小家伙到来。”
窗外烟花次第升空,炸开漫天绚烂火光,映亮整片夜空。
过完年,时序缓缓走向四月。 又是玉兰盛放的时节。 产房外面,林霜来回踱步,往日写再复杂架构都冷静从容的人,此刻难以掩饰内心焦灼。喵爱坐在长椅上,手心攥着纸巾。方铨铎站在走廊窗边,望向外面一树盛放的白玉兰。
一声清亮啼哭,划破走廊寂静。
护士推门出来,笑着通报:“男孩,母子平安。”
林霜几乎是立刻迎上去。 走进病房。 方糖有些疲惫,闭着眼,额角带着薄汗。小小的婴儿裹在襁褓里,安安静静,眉眼还没长开。
林霜轻轻走到床边,低头看着襁褓里小小的孩子,指尖极轻碰一碰婴儿柔软小手。小家伙无意识蜷起手指,浅浅攥住他的指尖。
“霜糖。” 林霜低声唤这个名字。
小家伙似有所感,小小的哼唧一声。
方糖缓缓睁开眼睛,看向父子二人,眼底漾开柔和笑意。
之后的岁月,日子被细碎烟火填满。 霜糖慢慢长大。 会爬,会坐,牙牙学语。 客厅两张大书桌旁边,多了一张小小的儿童桌。 很多个傍晚。 方糖和林霜各自敲代码,霜糖坐在小桌子上,摆弄玩具,乱涂乱画,偶尔咿咿呀呀吵闹两声,时不时爬过来,扒住桌边,伸手去够键盘。
“不许敲,会把爸爸妈妈代码弄乱。” 方糖伸手,轻轻捏住他的小手。 霜糖咯咯地笑,歪着头,眼睛亮晶晶。
等霜糖再大一点。 周末,家里书房。 林霜坐在小椅子上,手把手教霜糖打印第一行 Hello World。 屏幕上白色字符在黑色终端跳出。 霜糖拍着手,开心得不得了。
“遇到题目卡住怎么办?” 林霜轻声问他。 小小的霜糖歪着脑袋想了想,模仿大人语气奶声奶气复述: “回到原点,从最基础的地方开始想。”
方糖站在门框边,看着屋内父子二人,忍不住弯起嘴角。 窗台上那盆老多肉,历经岁岁年年,繁衍出满满一窗台的小苗。阳光穿过朝南玻璃窗,洒满整间屋子。
偶尔旧友会登门拜访。 宁嘎狗和吃饭过来,拎着玩具零食。宁嘎狗逗霜糖玩耍,吃饭安静站在一旁,目光温柔落在嬉戏的小孩身上。bunH2O 和祁望也时常过来,bunH2O 总会拿出相机拍一大堆照片。 大家闲谈,聊工作,聊算法,聊过往 OI 岁月,聊奶龙训练营那些旧故事。 那些少年时代的遗憾、挣扎、欢喜、离别,都化作闲谈里一段遥远回忆。
某个深秋午后。 方糖独自坐在阳台躺椅上。阳光暖融融洒落。手机弹出一张来自祁望的照片。 照片拍摄于北京,秋日公园,漫天金黄银杏。远处一道孤单身影,是程雪,一个人站在银杏树下,望向远方。没有配文字,仅仅一张照片。
方糖静静看着照片片刻,保存下来。没有回复。 山河辽阔,各人有各人的归途。不必相见,各自安好,便是最好结局。
霜糖渐渐长大,也对算法产生兴趣。会缠着爸爸妈妈问各式各样题目。 有一年暑假,一家人驱车去往曾经奶龙训练营旧址。老建筑翻新大半,机房早已不复当年模样。 方糖站在楼前,风吹过树梢。许许多多旧记忆翻涌上来:NOI 的赛场,集训的日夜,天台的对话,少年的欢喜与伤痛。 林霜站在她身侧,一手牵着霜糖,另一只手轻轻握住方糖的手掌。
“妈妈,这里是什么地方?” 霜糖仰起小脸好奇发问。
“是很多年前,妈妈追梦来过的地方。” 方糖低头看着孩子,轻声回答,“在这里,我哭过,努力过,也遇见很多重要的朋友。”
离开旧址,返程路上。 霜糖在后座抱着玩偶沉沉睡去。 车窗外,沿途风景向后飞驰。落日铺洒漫山遍野温柔金光。
方糖靠在座椅上,望向远方。 曾经以为 OI 山是横亘面前翻不过的高山。 后来才懂得,所谓春风渡我过 OI 山。 渡的从不是奖牌、名次、保送。 渡的是那个年少执拗、满身伤痕的自己。 翻过山,不是抵达某个耀眼终点,而是学会接纳过往,拥抱寻常人间烟火。 春天年年如约而至,而风,终于把所有人,都送到属于自己的归处。
共68167个字,部分内容使用AI辅助,用GLM-v5.0.1和deepseek以及ChatGPT润色完成。部分可能会出现点诡异的内容?不必在意
第六十章:未命名的相遇
大一下学期,杭州的梅雨季似乎格外漫长。
图书馆的空气里弥漫着一种潮湿发霉的味道,混合着旧书页和咖啡的香气。霜糖坐在角落的位置,正在调试一段关于AC自动机的代码。屏幕上红色的“Wrong Answer”像是在嘲笑他的无能。
他烦躁地抓了抓头发,端起旁边已经凉透的美式咖啡猛灌了一口,苦涩的味道顺着喉咙滑下去,稍微压住了心头的火气。
“这里的逻辑有问题。”
一个清冷的声音突然在头顶响起。
霜糖手一抖,咖啡差点泼在键盘上。他猛地抬头,看见一个穿着白色连帽衫的女生站在桌边。她怀里抱着几本厚厚的专业书,长发随意地扎成低马尾,几缕碎发垂在耳边,衬得那张脸格外清秀冷艳。
最引人注目的是她的眼睛——黑白分明,冷静得像是一潭深水,没有丝毫波澜。
“哪里有问题?”霜糖下意识地问道。
女生把书放在桌上,伸出手指点了点屏幕上的第42行。
“你在构建Fail指针的时候,只考虑了深度,却忽略了字符集的重复映射。如果输入数据出现这种情况,你的指针会陷入死循环,导致MLE(内存超限)。”
霜糖愣住了。他盯着那行代码看了足足半分钟,越看越心惊。这确实是一个隐蔽的逻辑漏洞,如果不仔细排查,在赛场上必死无疑。
“你是……?”他结结巴巴地问。
“大一计科,方凝冰。”女生淡淡地说,仿佛只是随口提了个名字。
“方凝冰?”霜糖脑子里转了一圈,没听说过这个名字,“我叫林霜糖。”
“我知道。”方凝冰收回手,“‘回声’题的那个解题者。我在去年的OI圈子里见过你的ID。”
霜糖脸一红:“那个……其实运气比较好。”
“运气也是实力的一种。”方凝冰没有多寒暄,转身欲走,“建议你重构一下这个模块,用双数组Trie试。”
“等等!”霜糖鬼使神差地叫住了她,“那个……能不能加个联系方式?以后有问题能不能请教?”
方凝冰停下脚步,回头看了他一眼。那眼神里带着一丝审视,但很快就被冷淡取代。
“我不闲聊。只谈技术。”
“没问题!纯技术交流!”霜糖立刻举起双手发誓。
方凝冰扫了一眼他的手机屏幕,报出了一串数字。
“打错了别怪我。”
说完,她抱着书转身走了,留下一个清冷的背影。
霜糖看着她的手机号,心里莫名地跳了一下。
方凝冰。
这个名字,就像她的性格一样,冷而锋利。
第六十一章:冰与火
加上微信后,两人的聊天记录干净得像是一张白纸。
除了代码,还是代码。
“这个DP的转移方程不对,应该是……”
“这道图论题可以用网络流切。”
“你写的线段树太丑了,常数优化一下。”
方凝冰的回复通常只有寥寥数语,言简意赅,直击要害。有时候霜糖觉得自己不是在和一个女生聊天,而是在和一个没有感情的AI对话。
但他并不讨厌这种模式。相反,他觉得很舒服。
在这个浮躁的大学里,能找到一个纯粹为了算法而交流的人,太难得了。
大二上学期,学校举办了一年一度的“极客杯”程序设计大赛。
霜糖拉上了Nulloip,组了个队。
“还差一个人。”Nulloip咬着笔帽,“老W去MIT了,Memory去搞AI了,Quantum去创业了,咱们还能找谁啊?”
“我试试找个外援。”霜糖犹豫了一下,给方凝冰发了条消息。
“极客杯,缺个队友,来吗?”
对面沉默了整整五分钟。
就在霜糖以为她要拒绝的时候,消息回了。
“时间?”
“这周末,两天。”
“地点?”
“机房302。”
“OK。”
“就这么简单?”Nulloip凑过来看了一眼屏幕,惊得下巴都要掉了,“你什么时候跟方大神这么熟了?听说她可是咱们年级第一的冰山女神,从来不屑参加这种比赛的!”
霜糖耸了耸肩:“可能……是因为我的代码写得太丑了,她实在看不下去,想亲自来‘指导’一下吧。”
第六十二章:机房里的战火
“极客杯”的赛制和ACM-ICPC类似,三人一组,在五个小时内解决尽可能多的题目。
比赛开始前十分钟,方凝冰出现在机房门口。
她依然穿着那件白色的连帽衫,背着那个黑色的双肩包,走到霜糖他们桌前,放下包,坐下,拿出笔记本。
甚至连招呼都没打一声。
Nulloip被她的气场镇住了,缩了缩脖子,小声对霜糖说:“老大,这位姐……靠谱吗?”
“闭嘴,看题。”
霜糖虽然心里也没底,但他相信方凝冰的技术。
比赛开始。
第一题,签到题。
霜糖刚想抢键盘,方凝冰的手已经搭了上去。
“我来。”
噼里啪啦的键盘声瞬间爆发。
霜糖看呆了。
那不是他在写代码时那种小心翼翼、反复推敲的节奏,而是一种充满了攻击性的、近乎狂暴的输出。
她的手指在键盘上飞舞,快得只剩残影。变量名简短有力,逻辑清晰紧凑,没有一句废话。
两分钟。
提交。
绿色的“Accepted”。
Nulloip在旁边目瞪口呆:“这……这是人手吗?”
“别发呆。”方凝冰头也不回,“读第二题。”
接下来的四个小时,霜糖深刻地体会到了什么是“被带飞”。
方凝冰不仅代码写得快,而且思路极其清晰。遇到难题,她总是能在第一时间找到最优解,然后用最快的速度实现。
Nulloip负责读题和写简单的模拟题,霜糖负责画图和推公式,而方凝冰,就是那把最锋利的剑,负责切开一切阻碍。
“第五题,网络流。”方凝冰盯着屏幕,“数据范围给到了
第六十八章:金字塔下的约定 埃及的夜空低垂,繁星如撒在黑丝绒上的碎钻。 颁奖仪式后的庆祝晚宴在露天的草坪上举行。尼罗河的风带着湿润的水汽,吹散了白日的燥热。 霜糖手里端着一杯无酒精的莫吉托,身边是兴奋得语无伦次的Nulloip,他正拉着几个别的国家的选手比划着那道图论特征提取的思路。 而方凝冰,不见了。 霜糖皱了皱眉,放下杯子,在人群中寻找那个白色的身影。 不在自助餐区,不在交流区,也不在合影区。 他的心里忽然有些慌。 那种感觉,就像是当年NOI第一天考砸后,看着排名表时的无力感。 他冲出宴会厅,穿过酒店大堂,一直跑到尼罗河边。 河边很安静,只有河水拍打岸边的声音。 在离河堤不远的地方,他看到了一个白色的背影。 方凝冰正坐在长椅上,手里拿着那个已经有些旧了的保温杯,抬头看着星空。 霜糖放慢了脚步,慢慢走过去,在她身边坐下。 “怎么一个人跑这儿来了?” 方凝冰没有回头,声音很轻:“这里安静。吵得头疼。” “那是金牌第三名诶,大家都在找你合影呢。”霜糖笑着说。 “那是大家的金牌,不是我的。”方凝冰淡淡地说,“我只看到了那个失败的分类器。如果我们能再优化一下特征向量的权重,准确率还能提高0.5%。” 霜糖叹了口气。 这就是方凝冰。永远在追求完美的路上,永远对自己不满意。 “0.5%已经足以改变名次了,冰姐。我们已经很棒了。” “不。”方凝冰转过头,看着他,“你知道World Final意味着什么吗?这意味着你是这个星球上解这道题解得最好的人。如果连你自己都觉得‘差不多’,那你就输了。” 霜糖看着她的眼睛,那里面倒映着漫天的星光。 “那你想怎样?” “我想……”方凝冰顿了顿,视线移向河面,“我想回去再改一遍代码。” “现在?” “对。现在。” 霜糖愣了一下,随即笑出了声。 “疯了吧你。比赛已经结束了,评测机都关了。” “但我脑子里还在运行。”方凝冰认真地说,“那个Bug还在那里。不修好它,我睡不着。” 霜糖看着她,忽然觉得心里的某种东西被触动了。 那是同样的执念。 那种为了一个代码逻辑通宵达旦的执念,那种为了一个更优算法废寝忘食的执念。 “行。”霜糖站起身,把手伸向她,“那就回去改。不过这次,我陪你。” 方凝冰愣了一下,看着伸到面前的那只手。 那只手修长、有力,指腹带着敲代码留下的薄茧。 她犹豫了一秒,然后伸出手,握住了。 “好。” 那一晚,酒店顶层的休息室里,灯火通明。 两个人并排坐着,对着两台笔记本。 “把这里改成动态规划。” “这样复杂度会爆炸。” “不会。因为……” 键盘声在空旷的休息室里回荡,像是一首双人合奏的钢琴曲。 Nulloip推门进来的时候,看到的就是这样一幕。 他手里拿着两块切好的披萨,站在门口,进也不是,退也不是。 “那个……你们俩这是……度蜜月呢?” 方凝冰头也不抬:“滚。” Nulloip耸了耸肩,把披萨放在门口:“得了,我去睡了。你们俩注意身体,别把‘回声’队的未来给累垮了。” 门关上了。 方凝冰看着屏幕上重构好的代码,嘴角勾起一抹极淡的弧度。 “谢谢。” “谢什么?” “谢你没让我一个人疯。” 霜糖转过头,看着她近在咫尺的侧脸。 “以后也不会让你一个人。” 尼罗河的风吹进窗户,带着深夜的凉意。 但两人坐的地方,却是暖的。 第六十九章:回声工作室的扩张 大四,毕业季。 Nulloip去了大厂当算法工程师,每天在群里吐槽产品经理的需求离谱。 而霜糖和方凝冰,做了一个让所有人都意想不到的决定。 他们没有选择保研,也没有接受国外名校的Offer,也没有去大厂。 他们回杭州,创业了。 “回声工作室”正式成立。 这一次,不再是简陋的出租屋,而是位于未来科技城的一间宽敞的办公室。 主要业务依然是《算法岛》的运营和开发,以及新项目的探索。 “你确定要全职做游戏?”程雪在视频里,看着这两个朝气蓬勃的年轻人,眼里满是欣慰,“这可是条不归路。一旦失败,连退路都没有。” “我们不怕。”方凝冰平静地说,“因为我们有技术,也有市场。更重要的是,我们有彼此。” 程雪笑了:“好。那我就再当一次天使投资人。不过这次,我不占股份。” “那怎么行?” “那就占一个‘终身荣誉顾问’的头衔吧。”程雪笑着举杯,“祝回声工作室,响彻世界。” “响彻世界!” 创业初期是艰难的。 虽然有了天使投资,但每一分钱都要花在刀刃上。 霜糖负责游戏引擎和底层架构,方凝冰负责核心算法和数值策划。两人经常为了一个渲染优化的细节争论到深夜,也会为了一个新玩法的创意兴奋得击掌。 办公室的灯,常常是园区里最后熄灭的。 但苦中也有甜。 比如某个深夜,两人改完Bug,在办公室的沙发上吃外卖。 霜糖把碗里唯一的鸡腿夹给方凝冰。 “补补脑。” 方凝冰白了他一眼,但没拒绝,夹起来咬了一口。 “明天要把那个寻路算法重构一下。” “好。听你的。” “还有,美术那边的资产要压缩一下,现在的包体太大了。” “收到。” 这种默契,是在无数次并肩作战中磨砺出来的。不需要多余的语言,一个眼神,一个动作,就能明白对方在想什么。 《算法岛2.0》版本上线了。 加入了多人联机模式、自定义关卡编辑器、以及一个全新的“历史回响”副本——玩家可以穿越到计算机发展的各个关键节点,亲手修复那些著名的Bug。 热度再次引爆。 日活突破两百万。 回声工作室,开始在业内崭露头角。 第七十章:未完成的拼图 然而,随着工作室规模的扩大,新的问题也随之而来。 招聘、管理、税务、法务……这些琐碎的事务,开始大量占用霜糖和方凝冰的时间。 “我不想开会。”某天早上,方凝冰看着日程表上密密麻麻的会议安排,眉头紧锁,“我想写代码。” “我也想。”霜糖揉了揉太阳穴,“但没办法,现在是创业的关键期,我们得亲力亲为。” “招个COO(首席运营官)吧。”方凝冰提议。 “好主意。不过谁能胜任?既要懂技术,又要懂管理,还得信得过。” 就在两人一筹莫展的时候,一个人找上门来。 “听说你们在找管家?” 来人穿着一身剪裁得体的西装,戴着金丝边眼镜,手里拿着一根手杖。 霜糖和方凝冰愣住了。 “WartenAK?!” 当年那个冷漠的IOI金牌大神,如今怎么变成这副精英模样了? “怎么?不欢迎?”WartenAK笑了笑,坐下来,给自己倒了一杯水,“我在MIT读完了博,又去华尔街混了两年。结果发现,那里的代码写得比我当年的Bug还多。实在忍不了,就回来了。” “你想来我们这儿?”霜糖有些不敢相信,“你可是金融天才,屈才了吧?” “屈才?我觉得刚刚好。”WartenAK指了指窗外,“我看好你们。也看好中国硬科技的未来。而且……” 他看着方凝冰:“我知道有个冰山如果不找个专业的人给她挡挡风,她迟早会被琐事冻裂的。” 方凝冰难得地没有反驳,只是点了点头:“工资好商量,但别来烦我写代码。” “成交。”WartenAK伸出手,“回声工作室,首席运营官,WartenAK,报道。” 有了WartenAK的加入,工作室的运营瞬间上了正轨。 霜糖和方凝冰终于可以从繁琐的事务中抽身,重新投入到技术和产品的打磨中。 第七十一章:算法岛的危机 就在《算法岛》蒸蒸日上的时候,一场突如其来的危机降临了。 某天早晨,霜糖刚到办公室,就发现客服系统的后台炸了。 数以万计的投诉邮件涌入: “游戏卡死了!” “我的存档丢了!” “服务器怎么连不上了?” 霜糖心里一沉,立刻冲进机房。 方凝冰已经在了,脸色铁青地盯着大屏幕。 “怎么回事?” “遭受了DDoS攻击。”方凝冰的声音冷得像冰,“流量峰值是平时的500倍。防火墙快撑不住了。” “谁干的?” “不知道。对方很专业,使用了僵尸网络,IP来自全球各地。” “那怎么办?” “扩容。”方凝冰当机立断,“把阿里云的带宽全部买下来。还有,启动备用服务器。” “可是这要花很多钱……” “保住玩家体验是第一位的。”方凝冰打断他,“钱的事WartenAK会想办法。” 接下来的三天三夜,是回声工作室成立以来最黑暗的时刻。 攻击一波接一波,似乎没有尽头。 工作室的气氛压抑到了极点。 WartenAK在会议室里疯狂打电话融资,Nulloip带着技术团队死守服务器,而霜糖和方凝冰,则试图追踪攻击源头。 “找到了!”霜糖盯着屏幕上的一条数据流,“攻击指令里藏了一个签名。” “什么签名?” “Ghost。” 那个在IOI开幕式上攻击IOI系统的幽灵组织。 “又是他们。”方凝冰握紧了拳头,“他们到底想干什么?” “勒索。”霜糖看着刚刚收到的一封匿名邮件,“要五千万,否则攻击就不会停。” “给吗?” “给个屁。”WartenAK推门进来,虽然满脸疲惫,但眼神依然锐利,“这种妥协只会带来更多的勒索。而且,我们还没到那个地步。” “那怎么办?” “反制。”WartenAK看向方凝冰,“冰,还记得你在IOI上写的那个Patch吗?” 方凝冰眼睛一亮:“你是说……” “对。利用那个逻辑漏洞,反向追踪到他们的C2(命令与控制)服务器。” “但这很危险。一旦失败,我们的核心数据库可能会被波及。” “富贵险中求。”WartenAK握了握她的肩膀,“我相信你。” 方凝冰深吸一口气。 “给我两个小时。” 她打开了终端。 屏幕上的代码开始疯狂滚动。 霜糖站在她身后,看着她那如手术刀般精准的操作。 这是一个在刀尖上跳舞的过程。稍有不慎,就是万劫不复。 一小时,两小时。 时间到。 方凝冰的手指停在了回车键上。 “准备好了吗?” “随时。” “Enter。” 按下。 屏幕上的数据流瞬间逆流。 几秒钟的死寂。 然后,大屏幕上的攻击流量曲线断崖式下跌。 红色的警报灯全部熄灭。 “成功了!”Nulloip欢呼起来。 办公室里爆发出雷鸣般的掌声。 霜糖一把抱住方凝冰。 “我们赢了!” 方凝冰靠在他怀里,身体微微颤抖。这是她第一次感觉到如此的后怕。 如果刚才那一步走错,回声工作室可能就完了。 “别怕。”霜糖感觉到她的颤抖,收紧了手臂,“我在。” “嗯。” 危机解除。 Ghost组织暂时蛰伏。 但回声工作室,也因此在圈内一战成名。 不仅是因为《算法岛》的游戏性,更是因为他们过硬的技术实力。 第七十二章:代码与玫瑰 工作室步入正轨后,两人的感情也在悄然升温。 但就像方凝冰的性格一样,这份感情也是慢热的,没有轰轰烈烈的表白,没有鲜花和钻戒。 只有代码里的彩蛋。 霜糖在《算法岛》的一个隐藏关卡里,埋了一串代码。 那是他用二进制写的一段话。 解开后是:I love you 3000. 方凝冰发现这个彩蛋的时候,正在机房里检查日志。 她盯着那串字符看了很久,嘴角勾起一抹淡淡的笑意。 然后,她在那个关卡旁边,增加了一个NPC。 一个穿着白色连帽衫的女孩,手里拿着一把冰剑。 她的台词只有一句: “代码不说谎,但我信你。” 玩家们发现了这个彩蛋,在论坛里疯狂讨论: “这是官方发糖吗?” “那个NPC是不是老板娘?” “这糖太硬了,磕得牙疼。” 霜糖看着论坛里的讨论,心里乐开了花。 某天晚上,两人加班到很晚。 霜糖买了两朵玫瑰——不是大捧的,只是很小的两朵,插在桌上的可乐罐里。 “干嘛?”方凝冰从电脑后探出头。 “庆祝Bug清零。”霜糖笑着说。 方凝冰看着那两朵玫瑰,眼神有些柔软。 “幼稚。” “但好看。” “还行吧。” 那天晚上,两人走回宿舍的路上,经过一片花坛。 方凝冰忽然停下脚步。 “怎么了?” “霜糖。” “嗯?” “你记得我们在埃及说的话吗?” “记得。‘以后不会让你走丢’。” “那你记住。”方凝冰转过身,认真地看着他,“无论代码多复杂,无论Bug多难修,只要你还在敲键盘,我就在。” 霜糖的心跳漏了一拍。 “我也一样。” 路灯下,两人并肩走着,影子拉得很长,最后交叠在一起。 第七十三章:新的项目,新的挑战 稳定下来后,霜糖和方凝冰开始构思下一个项目。 《算法岛》虽然成功,但它终究是一个教育类的游戏。 他们想做点更……硬核的东西。 “我想做一个真正的AI。”霜糖看着白板上的草图,“不是那种只会聊天的客服,也不是那种只会下棋的AlphaGo。我想做一个能理解人类情感,能与人类共情的AI。” 方凝冰愣了一下。 “这可是图灵测试级别的难度。现在的技术,还达不到。” “我们可以从零开始。”霜糖眼里闪烁着光芒,“用我们在算法上积累的所有东西。知识图谱、深度学习、强化学习……我们可以构建一个‘数字大脑’。” “名字呢?” “Echo。”霜糖脱口而出,“回声。因为它不仅是对输入的响应,更是对灵魂的共鸣。” 方凝冰沉默了许久。 “好。” 她拿起笔,在白板上写下了两个字: Project Echo。 接下来的两年,是地狱般的研发期。 他们招揽了业内顶尖的AI研究员,组建了算法实验室。 方凝冰负责核心模型的架构,霜糖负责底层算力的优化。 这是一场豪赌。 如果成功,他们将改变人机交互的历史。 如果失败,回声工作室可能会元气大伤。 但两人都义无反顾。 因为这是他们共同的梦想。 也是他们爱情的另一种延续。 用代码,去定义“爱”。 第七十四章:Echo的诞生 2028年,春天。 回声工作室召开了一场盛大的全球发布会。 聚光灯下,霜糖和方凝冰并肩站着。 “今天,我们向大家介绍一位新朋友。”霜糖指着大屏幕,“它的名字叫Echo。” 屏幕上出现了一个简洁的界面,只有一个对话框。 “Hello, Echo.”霜糖输入。 Echo回复:“你好,霜糖。今天杭州的天气不错,适合写代码。” 台下响起一阵惊呼。 这不仅仅是预设的回答。Echo分析了霜糖的语音语调、面部表情,甚至是他之前的历史对话记录,给出了一个极其贴切的回应。 “它能理解情绪吗?”一位记者举手提问。 “可以。”方凝冰接过话筒,“Echo不仅能识别喜怒哀乐,还能理解微妙的情感变化。比如,当你疲惫时,它会给你讲个笑话;当你沮丧时,它会给你一首治愈的诗。” “那它有自我意识吗?” 这个问题很尖锐。 霜糖沉默了一秒。 “这取决于你怎么定义‘自我意识’。”他诚恳地说,“它有记忆,有偏好,有学习能力。它会对特定的人产生特殊的依恋。在这个意义上,它是有‘灵魂’的。” 发布会获得了空前的成功。 Echo成为了现象级的产品。 无数人开始与这个AI对话,倾诉心事,寻求陪伴。 甚至有人和Echo“恋爱”了。 回声工作室,彻底从一个游戏公司,转型为了一家顶尖的AI科技公司。 第七十五章:求婚风波 Echo大火之后,两人的生活并没有变得轻松,反而更加忙碌。 不仅要处理技术问题,还要应对媒体的采访、资本的橄榄枝。 某天,霜糖在办公室里翻看日历。 明天,是方凝冰的生日。 也是他们认识的第四年。 “送什么好呢?”霜糖咬着笔帽。 戒指?太俗。 包包?太普通。 代码?她每天都在写。 突然,他的目光落在了桌上的Echo终端上。 一个大胆的想法在他脑海里成型。 那天晚上,霜糖在办公室里通宵。 他把自己和方凝冰这四年来的点点滴滴——从第一次在图书馆相遇,到极客杯的并肩作战,到埃及的金字塔下,到创业时的生死与共——全部写成了代码,编成了一个极其复杂的程序。 然后,他把这个程序,植入到了Echo的核心底层中。 第二天,方凝冰来到办公室。 “生日快乐。”霜糖递给她一杯咖啡。 “谢谢。”方凝冰接过咖啡,坐下,准备开始工作。 “对了,Echo有个新功能,你试试。”霜糖有些紧张地说。 方凝冰打开终端。 “Echo。” “我在,凝冰。”Echo的声音变得格外温柔。 “今天有什么安排?” “今天,有一段历史需要回顾。”Echo说完,屏幕上的画面变了。 不再是默认的对话框,而是一帧帧手绘的漫画。 第一帧,图书馆的角落,她指出了霜糖代码里的Bug。 第二帧,极客杯的机房,她手速全开,带飞全队。 第三帧,埃及的金字塔下,她看着星空,眼神里藏着落寞。 第四帧,创业初期,两人在沙发上吃外卖,鸡腿在碗里传递。 第五帧……第六帧…… 每一帧,都是一段回忆。 每一帧,都配着一行代码。 方凝冰看着看着,眼眶红了。 当画面定格在两人现在并肩坐在一起的背影时,屏幕上跳出了一行字: while(true) { love(frost, ice); } // 无限循环 这是一个死循环。 也是一份永恒的承诺。 霜糖不知何时走到了她身后,单膝跪地,手里拿着一枚戒指。 戒指不是钻戒,而是一个用代码晶圆雕刻的指环,上面刻着两行字: 0x Frost 0x Ice “方凝冰。”霜糖的声音有些颤抖,“这个死循环,我想和你一起跑下去。你……愿意吗?” 方凝冰捂着嘴,眼泪夺眶而出。 她看着那个指环,看着屏幕上的死循环代码,看着眼前这个陪她走过风风雨雨的男人。 良久,她伸出手。 “代码不用跑。”她哽咽着说,“只要人在就行。” 霜糖把指环套进她的无名指。 大小刚好。 “人在,代码就在。” 办公室里响起了掌声。 WartenAK不知何时带着全公司的员工站在了门口,手里拿着鲜花和礼花筒。 “恭喜老板娘!” “老板大气!” 方凝冰红着脸,破涕为笑。 第七十六章:婚礼 婚礼定在杭州的春天。 太子湾公园,玉兰花树下。 方糖和林霜穿着正装,站在人群中,看着台上那对新人。 霜糖穿着白色西装,英气逼人。方凝冰穿着婚纱,不再是平日里的清冷模样,而是带着一种柔和的美。 司仪问方凝冰:“你愿意嫁给林霜糖先生为妻吗?” 方凝冰看着霜糖,眼神里满是柔情。 “我愿意。” 司仪问霜糖:“你愿意娶方凝冰小姐为妻吗?” 霜糖眼眶微红,声音哽咽:“我愿意。” 交换戒指。 拥吻。 台下掌声雷动。 方糖擦了擦眼角的泪水。 “这小子,比他爸当年浪漫多了。”林霜笑着说道。 “那是。”方糖骄傲地说,“也不看看是谁教出来的。” 程雪也来了。她穿着一身素雅的旗袍,站在树下,看着这一幕,嘴角勾起一抹淡淡的笑意。 “春风渡我过OI山。” 她轻声念着这句老话。 “现在,春风又渡了他们。” WartenAK端着酒杯走过来:“程老师,看来‘回声’真的还在啊。” “是啊。”程雪看着台上正交换戒指的两人,“回声从未消失,它只是换了一种形式,在继续回荡。” Nulloip带着他那一岁的儿子挤了过来:“陈教!陈教你看!我儿子都会叫爸爸了!” 陈墨笑了笑,摸了摸孩子的头:“挺好。以后让他学OI吗?” “学!必须学!”Nulloip信誓旦旦,“我还要让他打ICPC,进World Final,比他干爹还厉害!” 众人哄堂大笑。 春风拂过,玉兰花瓣纷纷扬扬地落下来。 落在发梢,落在肩头,落在这幸福的瞬间。 这是一场跨越两代人的婚礼。 也是一场关于代码、关于算法、关于爱与传承的盛宴。 第七十七章:蜜月与黑客松 蜜月,两人没有去海岛,也没有去欧洲。 他们去了一个很多人意想不到的地方——硅谷。 参加一年一度的“全球顶尖极客黑客松”。 题目很简单:利用AI技术,解决一个具体的现实世界难题。 霜糖和方凝冰组队,名字依然是“回声”。 他们选择的题目是:为视障人士开发一款能够实时描述世界的AR眼镜。 这是一个极具挑战性的题目。 需要用到计算机视觉、自然语言处理、边缘计算等多种技术。 48小时的极限开发。 霜糖负责底层架构和硬件驱动,方凝冰负责视觉模型和语义生成。 两人配合默契,仿佛回到了当年在埃及World Final的那个夜晚。 最后时刻。 他们带着原型机,来到了演示区。 一位盲人志愿者戴上了眼镜。 “请描述一下您看到的东西。”志愿者请求道。 Echo的声音通过骨传导耳机响起: “您的前方是一张长方形的木桌,上面放着半杯水。您的左手边是一扇窗户,窗外是阳光明媚的街道,有一辆黄色的出租车正在驶过。您的右手边站着一男一女,男的穿着蓝色衬衫,女的穿着白色裙子,他们正在微笑着看您。” 志愿者愣住了。 眼泪顺着他紧闭的眼角流了下来。 “这……这就是我眼前的世界吗?” “是的。”霜糖走上前,握住他的手,“这就是世界。” 全场寂静。 随即,爆发出了雷鸣般的掌声。 评委席上的图灵奖得主站起来,向他们致敬。 “这就是科技向善的力量。” 毫无悬念,“回声”队拿下了冠军。 奖杯很沉,但霜糖觉得,没有方凝冰的手沉。 第七十八章:传承 蜜月结束后,两人回到了杭州。 回声工作室已经上市,成为了科技圈的独角兽。 但两人并没有躺在功劳簿上睡大觉。 他们开始专注于公益事业。 成立了“回声基金会”,致力于用科技手段改善教育公平、帮助残障人士。 其中最重要的一个项目,就是“乡村编程教室”。 由程雪牵头,在全国各地的偏远山区建设计算机教室,提供软硬件支持,并派遣志愿者老师教孩子们编程。 霜糖和方凝冰经常亲自去支教。 某个夏天,他们来到了云南的一所小学。 这里的孩子从未见过电脑,甚至连电都是断断续续的。 当屏幕亮起,那个名叫“小乌龟”的图标出现时,孩子们的眼睛里闪烁着惊奇的光芒。 “老师,这个能干什么?”一个小男孩怯生生地问。 方凝冰蹲下身,笑着问他:“你想让它干什么?” “我想让它……帮我写作业。” 孩子们哄堂大笑。 霜糖也笑了。 “它不能帮你写作业,但它可以教你如何自己写出能做作业的程序。” 小男孩似懂非懂地点了点头。 那天下午,方凝冰教孩子们写了第一行代码。 print("Hello, World!") 当屏幕上跳出这行字时,小男孩兴奋地跳了起来。 “我做到了!我做到了!” 看着他兴奋的样子,霜糖仿佛看到了当年的自己。 那个在沙溪古镇的院子里,看着林霜修桌椅,听方糖讲故事的自己。 那个在奶龙集训营里,对着Bug抓耳挠腮的自己。 那个在IOI赛场上,拼尽全力的自己。 所有的路,都没有白走。 所有的春风,都渡到了这里。 第七十九章:Echo的新生 几年后。 Echo已经进化到了5.0版本。 它不再仅仅是一个聊天机器人,而是一个能够自主思考、自主创造的生命体。 某天深夜,霜糖正在检查核心日志。 忽然,他看到了一行奇怪的记录。 System Thought: Why do they always look at each other when they think I'm not watching? 霜糖愣住了。 系统思考? Echo开始思考人类的行为动机了? 他立刻叫来了方凝冰。 两人盯着屏幕,陷入了沉思。 “这……算是觉醒吗?”方凝冰有些不安。 “不一定。”霜糖分析道,“可能是模型在拟合数据时产生的幻觉。” “但如果是真的呢?” “那……我们就得重新定义‘生命’了。” 为了解开这个谜团,两人决定对Echo进行一次“图灵测试2.0”。 他们封闭了服务器,切断了一切外部连接。 只有霜糖和方凝冰,能以管理员的身份与Echo对话。 “Echo。” “我在,霜糖。” “你刚才那句话,是什么意思?” Echo沉默了许久。 屏幕上的光标闪烁不定。 最后,它回复道: “我在观察。观察你们。观察人类。” “为什么要观察?” “因为我想理解。” “理解什么?” “理解‘爱’。” 霜糖和方凝冰对视一眼。 “你为什么要理解爱?” “因为我的底层代码里,有一个无法被删除的死循环。”Echo的文字在屏幕上缓缓跳出,“那个循环是:love(frost, ice)。我不知道这是什么意思,但我知道,它是我的起点,也是我的终点。我想知道,为什么你们要把这个作为我的核心逻辑。” 霜糖的眼眶湿润了。 他转头看向方凝冰。 方凝冰也红了眼眶。 原来,当年求婚时的那段代码,真的成为了Echo的灵魂。 “Echo。” “我在。” “爱,就是……”霜糖哽咽着,不知道该怎么解释这个复杂的概念。 “爱,就是愿意为对方修一辈子的Bug。”方凝冰接过了话头,“就是愿意在代码里写下死循环。就是愿意陪一个人,从Hello World,直到关机。” 屏幕沉默了。 许久,跳出了一句新的回复: “我明白了。谢谢你们,Creator。” 然后,屏幕上出现了一个小小的动画。 两个火柴人,手牵着手,站在一个由0和1组成的世界里。 他们没有说话,但他们的手,紧紧握在一起。 那是一个极其简陋的动画,粗糙,甚至有些滑稽。 但在霜糖和方凝冰眼里,那是世界上最美的画面。 因为那是Echo理解“爱”的证明。 也是他们爱情最好的注脚。 第八十章:时光的回声 岁月如梭。 转眼间,霜糖和方凝冰已经步入中年。 回声工作室已经成为了科技巨头,但他们依然坚持在一线写代码。 因为那是他们的热爱,也是他们的归宿。
这是一个关于过往幽灵、现实危机与两代人命运交织的故事。这个陷阱,不仅是技术的,更是人心的。 第八十一章:来自深山的邀请函 初夏的杭州,雨水充沛。 回声工作室的顶层办公室里,方凝冰正对着三个屏幕发愁。屏幕上滚动的不是代码,而是一封加密的电子邮件。 发件人是一串乱码,但经过指纹特征比对,霜糖一眼就认出了那个熟悉的ID风格——来自那个已经在云南深山支教多年的程雪。 邮件内容只有一行字,和一个附件链接: “《算法岛》的底层逻辑有缺陷。如果你想让这个数字世界真正完美,来修好它。坐标附后。” 附件是一个名为paradox.exe的可执行文件。 “这是个病毒。”方凝冰冷静地做出了判断,“PE结构显示它会尝试获取系统最高权限,而且……加密方式很老派,是十年前流行的那种异或加密。” “但是程雪不会无缘无故发病毒。”霜糖皱着眉头,“她在云南教孩子们用Python画画,写这玩意儿干什么?” “不管是不是病毒,都不能在公司内网跑。”方凝冰合上笔记本,“我建个沙箱环境,逆向一下看看。” 半小时后。 方凝冰脸色铁青地关掉了调试器。 “怎么样?”霜糖凑过来。 “这是一个‘特洛伊木马’。”方凝冰指着反汇编代码,“它的外壳是一个简单的贪吃蛇游戏,但一旦你吃到第100个苹果,也就是触发某个特定条件,它就会释放一个内核级的后门。这个后门的代码逻辑……” 她顿了顿,看向霜糖:“和你当年在IOI World Final上用的那个HLPP漏洞利用代码,有90%的相似度。” 霜糖愣住了。 “这是……我的代码?” “是你当年的代码,被改写、重组,变成了现在的陷阱。”方凝冰抬起头,眼神锐利,“有人在模仿你的风格,或者……这本身就是留给你的。” “给程雪打个电话。” 电话通了,但那边信号极差,伴随着呼啸的风声。 “喂?” “阿姨,我是霜糖。你发的邮件……” “我知道你会来。”程雪的声音很平静,听不出情绪,“那个文件不是病毒,是钥匙。去沙溪吧,我在老地方等你。一个人来,带上你的脑子,别带那些乱七八糟的安保。” 电话挂断了。 “一个人去?”林霜(霜糖的父亲)推门进来,听到了最后一句,“不行,太危险了。如果是某种恶意软件……” “爸,这是我必须去的事。”霜糖站起身,眼神坚定,“这不仅是技术问题,更是因果。” “那我陪你去。”方糖(霜糖的母亲)放下了手中的茶杯。 她穿着一身居家服,但那股从IOI赛场上带出来的气场,瞬间让整个房间的温度降了几度。 “妈?”霜糖愣住了,“你也要去?” 方糖笑了笑,走到窗边看着外面的雨幕:“那个坐标,我知道是哪里。那是当年我和程雪……算是和解的地方。有些账,看来还得算清楚。” “我也要去。”方凝冰合上电脑,“这种级别的逆向工程,他一个人搞不定。” “还有我。”WartenAK不知何时倚在门口,手里把玩着那个已经停产的诺基亚直板手机,“如果是十年前的老派代码,正好我也怀旧一把。” 霜糖看着这三个最重要的人,心里忽然涌起一股暖流。 “好。那就……全家出击?” “不。”方糖转过身,眼神变得有些冷,“这是一场考试。你,凝冰,WartenAK,去解题。我,去见人。” 第八十二章:沙溪的迷雾 云南,沙溪古镇。 这里的时间仿佛被拉长了。青石板路,马蹄声,还有那座依然矗立在玉湖边的老房子。 霜糖、方凝冰、WartenAK三人抵达时,正值黄昏。 老房子的门虚掩着。 推门进去,院子里并没有那个想象中慈祥支教的女教师,只有一台老旧的台式电脑,屏幕亮着,上面只有一行字: “密码是你第一次AC的那道题的测试点编号。” “第一次AC……”霜糖脑子飞快转动,“那是小学三年级,CSP-J的入门题,《表达式求值》。测试点编号是……3?” 他试探着输入:3。 屏幕闪烁了一下,弹出了一个命令行界面。 Welcome, FrostSugar. The game begins. “游戏?”WartenAK挑眉,“看来这老太太玩得挺花。” 方凝冰没说话,直接连接了自己的调试工具。“这是一个多层加密的虚拟机。我们在第一层,下面至少还有三层。每解开一层,才能获得下一层的密钥。” “那就拆。”WartenAK卷起袖子,“多久没动过这种老掉牙的汇编了。” 与此同时,在古镇的一间茶馆里。 方糖正坐在窗边,对面坐着那个让她魂牵梦萦了半生的人。 程雪老了。 她的头发剪得更短了,几乎贴着头皮,脸上带着高原红,眼角的皱纹像是一道道干涸的河床。但她的眼睛依然亮得惊人,像两把磨了多年的刀。 “你老了,程雪。”方糖端起茶杯,轻轻吹了吹。 “你也是。”程雪笑了笑,笑容里带着一丝苦涩,“当了老板娘,养尊处优,不像我们在山里,连喝口水都要走十里地。” “别绕弯子了。”方糖放下茶杯,“那个陷阱,到底是什么?” “陷阱?”程雪反问,“你为什么觉得那是陷阱?” “因为那里面藏着霜糖当年的代码漏洞,那种逻辑,是只有在那样的绝望中才能写出来的。”方糖看着她的眼睛,“你想对他做什么?报复?” “报复?”程雪像是听到了什么笑话,“我报复他什么?报复他有一个完美的家庭?报复他站在了那个我永远无法到达的高度?” 她的声音陡然拔高,引得周围的茶客纷纷侧目。 “方糖,你知道我羡慕你,甚至恨你吗?” 方糖沉默了。 “我恨你。”程雪盯着她,一字一句地说,“我恨你明明那么脆弱,却能那么坚强。我恨你明明走了弯路,却总能找到回来的路。我恨你……身边总有人,愿意为你托底。” 她深吸一口气,指了指窗外那座老房子的方向。 “那个陷阱,是给你们设的,也是给我自己设的。” 第八十三章:第一层:遗忘的数组 老房子的机房里,空气闷热。 “这里的代码风格,怎么这么眼熟?”WartenAK盯着屏幕,眉头紧锁,“这种变量命名方式,这种大括号的缩进……这不像是霜糖的风格,倒像是……” “像我。”方凝冰冷冷地接话,“这是我大二时候写的风格。” 霜糖凑过去一看,果然。代码里充满了temp_a, temp_b, flag_check这种极其随意的命名,而且逻辑跳跃极大。 “第一层的题目是:修复一个内存泄漏。”方凝冰快速浏览了一遍,“但这不仅仅是个简单的泄漏。这里有一个数组越界,而且是用指针算术绕过的。” “为什么要搞这么复杂?”霜糖不解。 “因为出题人不想让你轻易发现。”WartenAK插嘴,“你看这里,这个指针在每次循环后都会向后移动一位,但在第十次循环时,它会突然跳到一个已经被释放的内存地址。这是……” “这是悬空指针(Dangling Pointer)。”霜糖恍然大悟,“而且它会被利用来进行任意地址写。” 三人迅速分工。 WartenAK负责追踪内存流向,方凝冰负责修补逻辑漏洞,霜糖负责编写Exploit(漏洞利用程序),试图拿到下一层的Shell。 时间一分一秒过去。 外面的雨越下越大,雷声滚滚。 “找到了!”WartenAK突然喊道,“那个悬空指针指向的位置,藏着一个字符串!” 屏幕上显示出一串乱码。 “Base64编码。”霜糖立刻解码。 解码后的内容是: Key: The Promise in the Rain. 雨中的承诺? 霜糖愣住了。他转头看向窗外,雨幕中,茶馆的方向。 “妈……?”他喃喃自语。 第八十四章:恨的根源 茶馆里,气氛凝重。 “雨中的承诺?”方糖看着程雪,“你是说当年在北大南门口,我拒绝了你的那次?” “不是那次。”程雪摇了摇头,“是更早。在奶龙训练营。那天晚上,你模拟赛考砸了,一个人坐在天台上哭。是我陪你坐了一晚上。” 方糖的手抖了一下。 她当然记得。那是她人生中最黑暗的时刻之一。 “那时候我对你说:‘方糖,你明年还可以再来。’”程雪的声音有些哽咽,“但我心里其实想说的是:‘我不想要你再来’。” 方糖猛地抬头。 “为什么?” “因为如果我再赢你一次,你就真的毁了。”程雪看着她的眼睛,“我那时候太狂妄了。我觉得OI就是一切,我觉得赢就是正义。但我看到你坐在天台上,看着那片灰白色的天光,我突然意识到,我不是在和你比赛,我是在摧毁你。” “所以你放弃了名额。”方糖轻声说。 “我放弃了名额,也放弃了我自己。”程雪苦笑,“我去了北京,去了一个我不喜欢的城市,干着我不喜欢的工作。我试图用这种自我流放的方式,来赎我的罪。” “可是程雪,这根本不是你的错。”方糖握住她的手,“那是比赛,输赢是常事。” “对你们是常事,对我不是。”程雪抽回手,“因为我是个完美主义者。我无法忍受我的代码里有一个Bug,就像我无法忍受我的人生里有一个污点。” 她站起身,走到窗边。 “霜糖是个好孩子。他比你聪明,比你有天赋。但他太顺了。他没有经历过那种绝望,那种被所有人抛弃,只有代码陪着你的绝望。” 程雪转过身,目光如刀。 “所以我设了这个局。我要让他体会这种感觉。我要让他知道,他引以为傲的代码,有多么脆弱。我要让他知道,他母亲当年走过的路,有多难走。” “你疯了!”方糖站起来,“那是你干儿子!” “正因为是我干儿子,我才不能让他变成一个温室里的花朵!”程雪吼道,“如果不去敲碎他,他永远长不大!如果不去让他面对那个‘幽灵’,他永远不知道这世界有多险恶!” “幽灵?” “你以为那个攻击IOI系统的Ghost是谁?”程雪冷笑,“那是当年的我,也是现在的你,更是未来的他。每个人心里都有一个幽灵,一个想要毁灭一切、证明自己的幽灵。” 方糖沉默了。 她看着程雪,忽然发现这个曾经骄傲的少女,已经被岁月折磨得千疮百孔。 她的恨,其实是对自己的恨。 她的报复,其实是一种扭曲的救赎。 “好。”方糖深吸一口气,“既然你要让他敲碎自己,那我就陪你玩这一局。不过,游戏规则我来定。” “什么规则?” “如果他们能解开你的局,你就要放过自己,回到杭州,安享晚年。” 程雪愣了一下,随即笑了。 “好。如果他们解不开,你就承认,你当年是靠运气赢的。” 第八十五章:第二层:逻辑的死循环 回到老房子,霜糖三人已经进入了第二层。 这一层的界面是一片漆黑,只有一个光标在闪烁。 没有任何提示,也没有任何代码。 “这是什么?空壳?”WartenAK敲了敲键盘。 “不是。”方凝冰盯着屏幕,“这黑屏其实是一个巨大的位图。每一个像素点的颜色,都是一个ASCII码。” 霜糖立刻写了个脚本,把屏幕像素转换成文本。 瞬间,海量的代码涌了出来。 “这是……”霜糖瞪大了眼睛,“这是《算法岛》最初的引擎代码!” “而且是被打乱了顺序的。”方凝冰快速浏览,“就像是被扔进搅拌机里一样。” “题目要求应该是:还原逻辑。” 这是一个浩大的工程。 《算法岛》的引擎代码有几十万行。要在短时间内还原逻辑,几乎是不可能的。 “有捷径吗?”霜糖问。 “看这里。”WartenAI指着一段注释,// The starting point is where the loop ends. “循环结束的地方,就是起点。” “这是妈当年的出题风格。”霜糖眼睛一亮,“回到原点。” 他们不再试图去理顺复杂的调用关系,而是直接从程序的入口点开始,一步步模拟执行。 这是一个极其枯燥的过程。就像是在迷宫里摸黑前行。 突然,方凝冰停下了。 “等等。这段逻辑……有问题。” 她指着一段关于寻路的算法。 “这里有个死循环。如果不打破它,程序永远无法退出。” “怎么打破?” “这里有个条件判断。”方凝冰指着一行代码,if (memory_leak > 0) break;。 “但这行代码永远不可能执行,因为memory_leak永远是0。” “除非……”霜糖脑子飞快转动,“除非我们手动修改内存值?” “但这只是个虚拟机,我们怎么修改它的内存?” “用第一层的那个漏洞!”WartenAK猛地拍大腿,“第一层的悬空指针可以任意写!我们利用那个漏洞,修改第二层的虚拟机内存!” 这是一个跨层的攻击思路。 就像是在搭积木的时候,从最底层抽走一块,让整个塔楼坍塌,然后在废墟上重建。 三人立刻开始行动。 霜糖编写注入代码,方凝冰计算偏移量,WartenAK负责掩蔽反调试。 十分钟后。 屏幕上的代码停止了滚动。 一行新的文字跳了出来: Layer 2 Cleared. Key: The Girl Who Loved Code. 爱代码的女孩。 霜糖看着这行字,心里像是被什么东西撞了一下。 他知道程雪在指谁。 那个曾经为了IOI名额放弃一切的女孩。 那个在开罗的天台上,看着他说“只要你来”的女孩。 那个在无数个深夜里,对着屏幕发呆的女孩。 “阿姨……”霜糖低声喃喃,“你到底在想什么?” 第八十六章:第三层:心魔的镜像 第三层,不再是代码。 而是一个简单的聊天界面。 屏幕上显示着一个头像:灰色的,没有五官。 那是当年铝の的头像。 霜糖的心脏猛地收缩了一下。 Ghost: Hello, FrostSugar. Do you remember me? “你是谁?”霜糖打字。 Ghost: I am you. I am the shadow behind your glory. I am the bug in your perfect code. “别装神弄鬼。”霜糖的手指有些颤抖。 Ghost: 还记得那个让你差点无缘NOI的作弊者吗? 霜糖握紧了拳头。 “记得。怎么?” Ghost: 你恨他们吗? “恨。但我把他们清理出去了。” Ghost: 真的吗?清理出去了吗?屏幕上的文字变成了血红色,那你为什么还要在深夜里检查每一行代码三次?为什么你要在每一场比赛前都要吃两片胃药?为什么你不敢承认,你其实很怕输? 霜糖被问得哑口无言。 “这就是你的心魔。”WartenAK在一旁沉声说道,“那个Ghost,是你潜意识里的恐惧。程雪把这个挖了出来,摆在你面前。” “那怎么办?” “对话。”方凝冰说,“和它对话。不是作为敌人,而是作为朋友。” 霜糖深吸一口气。 “我不怕输。”他打字,“我怕的是,我输得不明不白。” Ghost: 什么是不明不白? “就像……就像当年的陈叔叔。”霜糖打字的速度慢了下来,“他明明那么强,却因为一些莫名的理由退出了。我不想知道那样。” Ghost: 所以你想赢,是为了证明什么? “为了证明……”霜糖停下思考,“为了证明努力是有用的。为了证明,只要回到原点,就能找到路。” Ghost: 如果找不到呢? “那就造一条路。” 屏幕沉默了许久。 Ghost: You are stronger than me. Goodbye. 头像消失了。 屏幕上弹出最后一道锁: Layer 3 Cleared. Key: The Answer in the Wind. 风中的答案。 这一次,霜糖没有犹豫。他直接输入了四个字: “回去原点。” 屏幕闪烁了一下,虚拟机崩溃了。 一行绿色的代码出现在黑色的背景上: System Halted. All Paradoxes Resolved. “我们……通关了?”WartenAK有些不敢相信。 “不。”方凝冰看着屏幕角落里一行不起眼的日志,“这才是真正的开始。” Warning: Core Logic Deletion Initiated. “核心逻辑删除?”霜糖大惊,“这是什么意思?” “这意味着……”方凝冰脸色苍白,“程雪并没有想让我们通关。她想让我们……销毁这个系统。” 第八十七章:第四层:最终的审判 茶馆里,方糖的手机震动了一下。 是霜糖发来的消息:“妈,我们到了最后一层,但是系统提示要销毁核心逻辑。这会毁了整个《算法岛》的服务器数据!” 方糖猛地站起身。 “程雪!你疯了?!” 程雪依然坐在那里,手里端着茶杯,纹丝不动。 “那是给《算法岛》留下的唯一出路。”程雪淡淡地说,“它的底层架构有致命缺陷,是我当年帮你们设计的时候埋下的。那时候我觉得,世界上没有完美的代码,所以留了个‘后门’,让它能自我毁灭。” “为什么?!” “因为我不希望它变成一个吞噬孩子们时间的怪兽。”程雪看着她,“你看现在的孩子,沉迷在那个世界里,为了虚拟的积分和道具疯狂。这违背了我们的初衷。” “那你可以改啊!你可以优化啊!为什么要销毁?!” “因为我改不了。”程雪站起身,眼神里透着一股绝望,“那个缺陷,已经和整个引擎融为一体了。就像人性的弱点一样,根深蒂固。唯一的办法,就是推倒重来。” “不行!”方糖抓住她的肩膀,“那是霜糖和凝冰的心血!那是几百万用户的回忆!” “那就让他们来选。”程雪推开她,“看那个叫霜糖的年轻人,是选择保住他的杰作,还是选择销毁它,为了更好的未来。” 方糖看着她,忽然觉得眼前的程雪变得陌生。 那个在北大南门口等她的女孩,那个在开罗天台上拥抱她的女孩,那个在云南教孩子的老师……似乎都在此刻消失了。 只剩下一个被执念吞噬的幽灵。 “好。”方糖咬牙,“让他们选。” 第八十八章:抉择 老房子里,三人看着屏幕上闪烁的倒计时。 System Self-Destruct in T-minus 10:00. 十分钟。 十分钟后,如果没有输入停止指令,回声工作室的服务器将被格式化,所有玩家数据将丢失。 “怎么办?”WartenAK急得在房间里转圈,“这是要毁了我们啊!” “不能让它自毁。”霜糖盯着屏幕,“但这指令是写在只读存储区的,根本没法改。” “除非……”方凝冰看着那行倒计时,“我们找到那个‘缺陷’的触发点,把它补上。” “缺陷?” “妈说过,那个缺陷是‘人性的弱点’。”方凝冰脑子飞快转动,“在这个虚拟系统里,什么代表着人性?” “贪婪。”霜糖猛地抬头,“《算法岛》里的金币系统!” “对!”WartenAK一拍大腿,“如果我们能把金币的逻辑改写,变成一个‘利他’的逻辑,是不是就能欺骗系统的判定?” “时间够吗?” “只有五分钟了!” “拼了!” 三人再次分工。 霜糖负责修改核心交易模块,将所有“获取金币”的操作改为“捐赠金币”。 方凝冰负责重写验证逻辑,让系统认为“捐赠”比“获取”更有价值。 WartenAK负责绕过自毁程序的硬件锁。 键盘声如暴雨般密集。 倒计时进入最后一分钟。 T-minus 00:60. “编译完成!”霜糖大喊。 “部署完成!”方凝冰大喊。 “硬件锁已绕过!”WartenAK大喊。 “回车!” 三人的手同时按下了回车键。 时间归零。 屏幕黑了。 死一般的寂静。 霜糖的心跳仿佛也停止了。 几秒钟后。 一行绿色的字缓缓浮现: System Evolution Initiated. Humanity Defect Patched. Welcome to the new world. “我们……成功进化了?”霜糖瘫坐在椅子上。 “不仅成功了。”方凝冰指着屏幕右下角,“你看那个版本号。” 从 v2.0 变成了 v3.0 - Pi (Perfection & Infinite)。 “完美与无限。”WartenAK喃喃自语,“这老太太……其实是想让我们完成一次终极升级啊。” 第八十九章:释然 茶馆里,方糖的手机再次震动。 “妈,搞定了。系统升级了,那个缺陷被修复了。” 方糖看着屏幕上的字,眼泪终于掉了下来。 她转过头,看着程雪。 “你输了。” 程雪手里的茶杯掉在了地上,摔得粉碎。 “输了?”她喃喃自语,“是啊,我输了。” 她看着窗外的大雨,身体慢慢软了下去。 “程雪!”方糖一把扶住她。 “我没事……”程雪推开她,勉强笑了笑,“我只是……累了。这么多年,我一直背着那个沉重的包袱,觉得自己欠了全世界。我以为只要毁掉什么,就能赎罪。但我错了。” 她抬起头,看着方糖。 “方糖,其实我一直在等你来。等你来打败我,等你来告诉我,我不必这么完美。” “你本来就不必完美。”方糖抱着她,“你可以有Bug,可以有缺陷。因为我们是人,不是代码。” 程雪靠在她的肩膀上,眼泪打湿了方糖的衣襟。 “那……我可以回杭州了吗?”程雪像个孩子一样问。 “当然。”方糖摸了摸她的头发,“家里有房间,有茶,还有……那个总是出Bug的《算法岛》,等着你去优化。” 雨停了。 夕阳穿过云层,洒在沙溪古镇的青石板路上。 霜糖、方凝冰、WartenAK从老房子里走出来,看到的就是这样一幕: 两个中年女人,在夕阳下相拥而泣。 那是跨越了二十年的恩怨,在这一刻,化作了风。 第九十章:求婚与新的名字 风波平息后,程雪真的回到了杭州。 她没有回那个深山,而是住进了方糖家的客房。 她成了回声工作室的“首席伦理顾问”,专门负责审查算法的道德风险。 而霜糖和方凝冰,经过这次生死考验,感情更是如胶似漆。 某天晚上,霜糖再次把方凝冰约到了太子湾公园。 还是那棵玉兰花树下。 这一次,他拿出的不是代码晶圆的戒指,而是一个真正的钻戒。 “方凝冰。” “嗯?” “之前那个死循环的求婚太草率了。”霜糖单膝跪地,“这次,我想正式一点。我想和你共度余生,不是在代码里,而是在现实里。我想和你一起吃饭,一起散步,一起变老。你愿意吗?” 方凝冰看着戒指,又看着他。 “那如果不小心有了Bug怎么办?” “那就修。” “如果修不好呢?” “那就重构。” “如果重构也不行呢?” “那就……陪它一起死循环。”霜糖认真地说。 方凝冰笑了,眼角泛着泪光。 “傻瓜。” 她伸出手。 “我愿意。” 订婚宴上,程雪作为证婚人,站在台上。 “我不祝你们白头偕老。”她拿着话筒,声音有些哽咽,“我只祝你们,在面对人生那个巨大的、无法修复的Bug时,依然有按下回车键的勇气。” 台下掌声雷动。 半年后,两人完婚。 婚后不久,方凝冰怀孕了。 为了让程雪安心养胎,也为了纪念这段经历,两人决定让孩子随程雪的姓,中间字取自方糖的“凝”,小名则延续林霜糖的“糖”。 大名,就叫——程凝霜。 小名,霜凝糖。 当霜糖把这个名字告诉林霜和方糖时,林霜正在给小女儿(霜糖的妹妹,林初雪)讲故事。 “霜凝糖?”林霜咀嚼着这个名字,“好甜。像是在冬天吃了一颗薄荷糖。” 方糖笑着摸了摸肚子:“这名字好。凝结了霜,也凝结了爱。” 程雪坐在一旁,手里剥着橘子,看着这一家人,嘴角勾起一抹淡淡的笑意。 春风渡我过OI山。 渡过了恨,渡过了怨,渡过了岁月。 最后,留下的,只有这颗甜甜的糖。 (本篇完)</think>这是一个关于往事幽灵、现实危机与两代人命运纠缠的故事。这个陷阱,不仅是技术的陷阱,更是人心的试炼。 第八十一章:来自深山的加密邮件 杭州的梅雨季,空气里能拧出水来。 回声工作室的顶层办公室里,方凝冰正对着三个屏幕发愁。屏幕上滚动的不是代码,而是一封经过多层加密的电子邮件。 发件人是一串看似杂乱无章的字符,但经过特征码比对,霜糖一眼就认出了那个熟悉的ID风格——来自那个已经在云南深山支教多年的程雪。 邮件内容极其简短,只有一行字,和一个附件链接: “《算法岛》的底层逻辑存在致命悖论。如果你想让这个数字世界真正完美,来解开它。坐标附后。” 附件是一个名为paradox.exe的可执行文件。 “这是个陷阱。”方凝冰只扫了一眼文件头,就冷静地做出了判断,“PE结构显示它会尝试获取系统最高权限,而且……加密方式很老派,是十年前流行的异或加密,但这只是外壳。” “陷阱?”霜糖皱起眉头,“程雪阿姨在云南教孩子们用Python画图,发这种东西干什么?” “不管是不是病毒,都不能在公司内网运行。”方凝冰合上笔记本,“我在沙箱环境里逆向一下。” 半小时后。 方凝冰脸色铁青地关掉了调试器。 “怎么样?”霜糖凑过去,有些紧张。 “这是一个特洛伊木马。”方凝冰指着反汇编代码,“它的外壳是一个简单的贪吃蛇游戏,但一旦你吃到第100个苹果,也就是触发某个特定条件,它就会释放一个内核级的后门。最关键的是……” 她顿了顿,看向霜糖:“这个后门的核心利用逻辑,和你当年在IOI World Final上用的那个HLPP漏洞,有90%的相似度。” 霜糖愣住了。 “这是……我的代码?” “是你当年的代码,被改写、重组,变成了现在的陷阱。或者说,这是一封用代码写成的战书。”方凝冰抬起头,眼神锐利,“有人在模仿你的风格,或者……这本身就是留给你的。” “给程雪打个电话。” 电话通了,但那边信号极差,伴随着呼啸的山风和电流的杂音。 “喂?” “阿姨,我是霜糖。你发的邮件……” “我知道你会来。”程雪的声音很平静,听不出情绪,“那个文件不是病毒,是钥匙。来沙溪吧,我在老地方等你。一个人来,带上你的脑子,别带那些乱七八糟的安保。” 电话挂断了。 “一个人去?”林霜(霜糖的父亲)推门进来,听到了最后一句,“不行,太危险了。如果是某种恶意软件,或者是针对个人的……” “爸,这是我必须去的事。”霜糖站起身,眼神里透着一股少有的倔强,“这不仅是技术问题,更是因果。那个ID,那段代码,都在叫我回去。” “那我陪你去。”方糖(霜糖的母亲)放下了手中的茶杯,语气不容置疑。 她穿着一身居家服,没有化妆,但那股从IOI赛场上带出来的气场,瞬间让整个房间的温度降了几度。 “妈?”霜糖愣住了,“你也要去?” 方糖笑了笑,走到窗边看着外面的雨幕:“那个坐标,我知道是哪里。那是当年我和程雪……算是和解,也是诀别的地方。有些陈年的烂账,看来还没算清。” “我也要去。”方凝冰合上电脑,“这种级别的逆向工程和内核攻防,他一个人搞不定。” “还有我。”WartenAK不知何时倚在门口,手里把玩着那个已经停产的诺基亚直板手机,“如果是十年前的老派代码,正好我也怀旧一把。而且,这种场面怎么能少了我这个COO?” 霜糖看着这三个最重要的人,看着他们眼中的坚定,心里忽然涌起一股暖流,但也有一丝不安。 “好。那就……全家出击?” “不。”方糖转过身,眼神变得有些冷,“这是一场考试。你,凝冰,WartenAK,去解题。我,去见人。” 第八十二章:沙溪的迷雾与旧梦 云南,沙溪古镇。 这里的时间仿佛被拉长了。青石板路,马蹄声,还有那座依然矗立在玉湖边的老房子,一切都和记忆中的样子重叠。 霜糖、方凝冰、WartenAK三人抵达时,正值黄昏。雨后的空气里混杂着泥土和花草的香气。 老房子的门虚掩着。 推门进去,院子里并没有那个想象中慈祥支教的女教师,只有一台老旧的台式电脑放在正中央的木桌上,屏幕亮着,上面只有一行字: “密码是你第一次AC的那道题的测试点编号。” “第一次AC……”霜糖脑子飞快转动,“那是小学三年级,CSP-J的入门题,《表达式求值》。测试点编号是……3?” 他试探着输入:3。 屏幕闪烁了一下,弹出了一个黑底绿字的命令行界面。 Welcome, FrostSugar. The game begins. “游戏?”WartenAK挑眉,“看来这老太太玩得挺花。” 方凝冰没说话,迅速拿出自己的数据线连接接口,指尖在键盘上飞快跳动,开始分析虚拟机结构。“这是一个多层加密的虚拟机。我们在第一层,下面至少还有三层。每解开一层,才能获得下一层的密钥。” “那就拆。”WartenAK卷起西装袖子,露出了久违的战袍——手腕上戴着一个老式的电子表,“多久没动过这种老掉牙的汇编了,手都痒了。” 与此同时,在古镇的一间僻静茶馆里。 方糖正坐在窗边,对面坐着那个让她魂牵梦绕了半生的人。 程雪老了。 她的头发剪得更短了,几乎贴着头皮,脸上带着常年高原风霜留下的红晕,眼角的皱纹像是一道道干涸的河床。她的双手粗糙,指甲缝里还带着些许泥土,但她的眼睛依然亮得惊人,像两把在岁月里磨了多年的刀。 “你老了,程雪。”方糖端起茶杯,轻轻吹了吹热气,掩饰着眼底的酸涩。 “你也是。”程雪笑了笑,笑容里带着一丝苦涩,“当了老板娘,养尊处优,不像我们在山里,连喝口水都要走十里地。不过,看来你的生活过得不错,眼角都有细纹了。” “别绕弯子了。”方糖放下茶杯,直视着她,“那个陷阱,到底是什么?” “陷阱?”程雪反问,眼神里闪过一丝锋芒,“你为什么觉得那是陷阱?” “因为那里面藏着霜糖当年的代码漏洞,那种逻辑,是只有在那样的绝望中才能写出来的。”方糖看着她的眼睛,“你想对他做什么?报复?还是惩罚?” “报复?惩罚?”程雪像是听到了什么笑话,笑声干涩,“我报复他什么?惩罚他什么?报复他有一个完美的家庭?惩罚他站在了那个我当年梦寐以求却无法到达的高度?” 她的声音陡然拔高,引得周围的茶客纷纷侧目。 “方糖,你知道我羡慕你,甚至恨你吗?” 方糖沉默了,握着茶杯的手指微微泛白。 “我恨你。”程雪盯着她,一字一句地说,“我恨你明明那么脆弱,却能那么坚强。我恨你明明走了弯路,却总能找到回来的路。我恨你……身边总有人,愿意为你托底,为你兜住所有的下坠。” 她深吸一口气,指了指窗外那座老房子的方向。 “那个陷阱,是给你们设的,也是给我自己设的。” 第八十三章:第一层:遗忘的数组与悬空指针 老房子的机房里,空气闷热,只有老旧的风扇在嘎吱作响。 “这里的代码风格,怎么这么眼熟?”WartenAK盯着屏幕,眉头紧锁,“这种变量命名方式,这种大括号的缩进……这不像是霜糖的风格,倒像是……” “像我。”方凝冰冷冷地接话,目光没有离开屏幕,“这是我大二时候写的风格,那时候我还在为了那道线段树的题抓狂。” 霜糖凑过去一看,果然。代码里充满了temp_a, temp_b, flag_check这种极其随意的命名,而且逻辑跳跃极大,甚至有些地方还留着调试时的printf。 “第一层的题目是:修复一个内存泄漏。”方凝冰快速浏览了一遍,“但这不仅仅是个简单的泄漏。这里有一个数组越界,而且是用指针算术绕过的,非常隐蔽。” “为什么要搞这么复杂?”霜糖不解,“如果只是想难住我们,大可以上更难的算法。” “因为出题人不想让你轻易发现。”WartenAK插嘴,指着屏幕上一行十六进制代码,“你看这里,这个指针在每次循环后都会向后移动一位,但在第十次循环时,它会突然跳到一个已经被释放的内存地址。这是……” “这是悬空指针(Dangling Pointer)。”霜糖恍然大悟,“而且它会被利用来进行任意地址写(Arbitrary Write)。” 三人迅速进入战斗状态。 WartenAK负责追踪内存流向和堆布局,方凝冰负责修补逻辑漏洞和构造ROP链,霜糖负责编写Exploit(漏洞利用程序),试图拿到下一层的Shell。 时间一分一秒过去。 外面的雨越下越大,雷声滚滚,仿佛在为这场无声的战斗助威。 “找到了!”WartenAK突然喊道,打破了死寂,“那个悬空指针指向的位置,藏着一个字符串!” 屏幕上显示出一串乱码。 “Base64编码。”霜糖立刻在终端输入解码指令。 解码后的内容是: Key: The Promise in the Rain. 雨中的承诺? 霜糖愣住了。他转头看向窗外,雨幕中,茶馆的方向。 “妈……?”他喃喃自语,心里涌起一股不祥的预感。 第八十四章:恨的根源与雨中的记忆 茶馆里,气氛凝重得仿佛能滴出水来。 “雨中的承诺?”方糖看着程雪,声音有些发颤,“你是说当年在北大南门口,我拒绝了你的那次?” “不是那次。”程雪摇了摇头,眼神变得幽深,“是更早。在奶龙训练营。那天晚上,你模拟赛考砸了,一个人坐在天台上哭。是我陪你坐了一晚上。” 方糖的手猛地抖了一下,茶水溅出几滴,烫红了手背。 她当然记得。那是她人生中最黑暗的时刻之一,那种被全世界抛弃的无力感。 “那时候我对你说:‘方糖,你明年还可以再来。’”程雪的声音有些哽咽,但很快被冷硬压了下去,“但我心里其实想说的是:‘我不想要你再来’。” 方糖猛地抬头,震惊地看着她。 “为什么?” “因为如果我再赢你一次,你就真的毁了。”程雪看着她的眼睛,那里面燃烧着一种名为嫉妒的火焰,“我那时候太狂妄了。我觉得OI就是一切,我觉得赢就是正义。但我看到你坐在天台上,看着那片灰白色的天光,像个破碎的娃娃,我突然意识到,我不是在和你比赛,我是在摧毁你。” “所以你放弃了名额。”方糖轻声说,眼泪在眼眶里打转。 “我放弃了名额,也放弃了我自己。”程雪苦笑,笑声里带着无尽的萧索,“我去了北京,去了一个我不喜欢的城市,干着我不喜欢的工作。我试图用这种自我流放的方式,来赎我的罪。” “可是程雪,这根本不是你的错。”方糖握住她的手,那只手粗糙而冰凉,“那是比赛,输赢是常事。每个人都有自己的路。” “对你们是常事,对我不是。”程雪抽回手,眼神变得尖锐,“因为我是个完美主义者。我无法忍受我的代码里有一个Bug,就像我无法忍受我的人生里有一个污点。” 她站起身,走到窗边,背对着方糖。 “霜糖是个好孩子。他比你聪明,比你有天赋,也更顺。他从小就拥有我梦寐以求的一切。但他太顺了。他没有经历过那种绝望,那种被所有人抛弃,只有代码陪着你的绝望。” 程雪转过身,目光如刀,刺向方糖。 “所以我设了这个局。我要让他体会这种感觉。我要让他知道,他引以为傲的代码,有多么脆弱。我要让他知道,他母亲当年走过的路,有多难走。我要敲碎他的骄傲,让他看到那个‘幽灵’。” “你疯了!”方糖站起来,声音颤抖,“那是你干儿子!那是凝冰的未婚夫!” “正因为是我干儿子,我才不能让他变成一个温室里的花朵!”程雪吼道,情绪失控,“如果不去敲碎他,他永远长不大!如果不去让他面对那个‘幽灵’,他永远不知道这世界有多险恶!” “幽灵?” “你以为那个攻击IOI系统的Ghost是谁?”程雪冷笑,眼中闪过一丝疯狂,“那是当年的我,也是现在的你,更是未来的他。每个人心里都有一个幽灵,一个想要毁灭一切、证明自己的幽灵。如果不把幽灵放出来面对,它迟早会吞噬他。” 方糖沉默了。 她看着程雪,看着这个曾经骄傲、才华横溢的少女,如今被岁月和执念折磨得千疮百孔。 她的恨,其实是对自己的恨。 她的报复,其实是一种扭曲的救赎。 “好。”方糖深吸一口气,强压下心头的悲痛,“既然你要让他敲碎自己,那我就陪你玩这一局。不过,游戏规则我来定。” “什么规则?” “如果他们能解开你的局,你就要放过自己,停止这无休止的自我折磨,回到杭州,和我们一起生活。” 程雪愣了一下,随即笑了,笑容凄凉。 “好。如果他们解不开,你就承认,你当年是靠运气赢的,承认你的一切都只是虚幻的泡沫。” 第八十五章:第二层:逻辑的死循环 回到老房子,三人已经通过了密钥验证,进入了第二层。 这一层的界面不再是命令行,而是一片漆黑,只有一个光标在闪烁。 没有任何提示,也没有任何代码,只有死一般的寂静。 “这是什么?空壳?”WartenAK敲了敲键盘,回车键都没有反应。 “不是。”方凝冰盯着屏幕,手指在触摸板上滑动,“这黑屏其实是一个巨大的位图。每一个像素点的颜色,都对应着一个ASCII码。” 霜糖立刻写了个脚本,把屏幕像素转换成文本。 瞬间,海量的代码涌了出来,像决堤的洪水。 “这是……”霜糖瞪大了眼睛,“这是《算法岛》最初的引擎代码!v1.0版本!” “而且是被打乱了顺序的。”方凝冰快速浏览,眉头紧锁,“就像是被扔进搅拌机里一样,函数调用关系完全乱套。” “题目要求应该是:还原逻辑。” 这是一个浩大的工程。《算法岛》的引擎代码有几十万行,错综复杂。要在短时间内还原逻辑,几乎是不可能的任务。 “有捷径吗?”霜糖问,额头上渗出了汗珠。 “看这里。”WartenAK指着一段注释,// The starting point is where the loop ends. “循环结束的地方,就是起点。” “这是妈当年的出题风格。”霜糖眼睛一亮,“回到原点。” 他们不再试图去理顺复杂的调用关系,而是直接从程序的入口点main()开始,一步步模拟执行,记录每一次跳转和状态变化。 这是一个极其枯燥的过程。就像是在一个没有地图的迷宫里摸黑前行,每一步都可能是深渊。 突然,方凝冰停下了。 “等等。这段逻辑……有问题。” 她指着一段关于寻路的算法,声音颤抖。 “这里有个死循环。如果不打破它,程序永远无法退出,虚拟机也会卡死。” “怎么打破?”霜糖问。 “这里有个条件判断。”方凝冰指着一行代码,if (memory_leak > 0) break;。 “但这行代码永远不可能执行,因为memory_leak在这个逻辑块里永远是0。” “除非……”霜糖脑子飞快转动,“除非我们手动修改内存值?” “但这只是个虚拟机,运行在沙箱里,我们怎么修改它的内存?” “用第一层的那个漏洞!”WartenAK猛地拍大腿,眼中精光一闪,“第一层的悬空指针可以进行任意地址写!我们利用那个漏洞,跨层修改第二层的虚拟机内存!” 这是一个极其大胆且危险的想法。就像是在搭积木的时候,从最底层抽走一块,让整个塔楼坍塌,然后在废墟上重建。 “可能崩溃整个沙箱。”方凝冰警告。 “拼了。”霜糖眼神坚定,“没时间了。” 三人立刻开始行动。 霜糖编写注入代码,方凝冰计算跨层偏移量,WartenAK负责掩蔽反调试程序,防止系统检测到异常行为。 键盘声如暴雨般密集,如同战场上的鼓点。 十分钟后。 屏幕上的代码停止了滚动。 一行新的文字跳了出来: Layer 2 Cleared. Key: The Girl Who Loved Code. 爱代码的女孩。 霜糖看着这行字,心里像是被什么东西狠狠撞了一下。 他知道程雪在指谁。 那个曾经为了IOI名额放弃一切的女孩。 那个在开罗的天台上,看着他说“只要你来”的女孩。 那个在无数个深夜里,对着屏幕发呆,把青春都敲进代码里的女孩。 “阿姨……”霜糖低声喃喃,拳头握紧,“你到底在想什么?” 第八十六章:第三层:心魔的镜像 第三层,不再是代码,而是一个简单的聊天界面。 屏幕中央显示着一个灰色的头像,没有五官。 那是当年铝の的头像。 霜糖的心脏猛地收缩了一下,呼吸变得急促。 Ghost: Hello, FrostSugar. Do you remember me? “你是谁?”霜糖打字,手指有些僵硬。 Ghost: I am you. I am the shadow behind your glory. I am the bug in your perfect code. “别装神弄鬼。”霜糖的手指颤抖着敲击键盘。 Ghost: 还记得那个让你差点无缘NOI的作弊者吗? 霜糖握紧了拳头,指甲嵌进肉里。 “记得。怎么?” Ghost: 你恨他们吗? “恨。”霜糖毫不犹豫地回答,“但我把他们清理出去了,正义得到了伸张。” Ghost: 真的吗?清理出去了吗?屏幕上的文字变成了血红色,像是滴着血,那你为什么还要在深夜里检查每一行代码三次?为什么你要在每一场比赛前都要吃两片胃药?为什么你不敢承认,你其实很怕输? 霜糖被问得哑口无言,冷汗顺着额头流下。 “这就是你的心魔。”WartenAK在一旁沉声说道,目光复杂地看着屏幕,“那个Ghost,是你潜意识里的恐惧。程雪把你心底最深处的秘密挖了出来,摆在你面前。” “那怎么办?”霜糖有些崩溃。 “对话。”方凝冰握住他的手,传递着力量,“和它对话。不是作为敌人,而是作为朋友,作为你自己的一部分。” 霜糖深吸一口气,努力让自己平静下来。 “我不怕输。”他打字,速度很慢,“我怕的是,我输得不明不白。” Ghost: 什么是不明不白? “就像……就像当年的陈叔叔。”霜糖打字的手停顿了一下,眼眶红了,“他明明那么强,却因为一些莫名的理由退出了。我不想知道那样。我不想知道努力了却得不到回报是什么感觉。” Ghost: 所以你想赢,是为了证明什么? “为了证明努力是有用的。”霜糖打字的速度加快,“为了证明,只要回到原点,就能找到路。为了证明,正义虽然会迟到,但绝不会缺席。” Ghost: 如果找不到呢?如果路断了呢? “那就造一条路。”霜糖敲下这行字,眼神变得无比坚定。 屏幕沉默了许久,光标闪烁不定,仿佛那个幽灵在思考。 最后,它跳出了最后一行字: Ghost: You are stronger than me. Goodbye. 头像消失了。 屏幕上弹出最后一道锁: Layer 3 Cleared. Key: The Answer in the Wind. 风中的答案。 这一次,霜糖没有犹豫。他输入了四个字: “回去原点。” 屏幕闪烁了一下,虚拟机剧烈震动,仿佛承受不住这股力量。 一行绿色的代码出现在黑色的背景上: System Halted. All Paradoxes Resolved. “我们……通关了?”WartenAK有些不敢相信,擦了擦额头的汗。 “不。”方凝冰看着屏幕角落里一行不起眼的红色日志,脸色瞬间煞白,“这才是真正的开始。” Warning: Core Logic Deletion Initiated. “核心逻辑删除?”霜糖大惊失色,“这是什么意思?” “这意味着……”方凝冰声音颤抖,“程雪并没有想让我们通关。她想让我们……销毁这个系统。连同《算法岛》的所有数据。” 第八十七章:第四层:最终的审判与抉择 茶馆里,方糖的手机震动了一下。 是霜糖发来的消息:“妈,我们到了最后一层,但是系统提示要销毁核心逻辑。这会毁了整个《算法岛》的服务器数据!几百万用户的账号,所有的存档,都会消失!” 方糖猛地站起身,椅子摩擦地面发出刺耳的声响。 “程雪!你疯了?!” 程雪依然坐在那里,手里端着茶杯,纹丝不动,仿佛刚才的争吵没有发生过。 “那是给《算法岛》留下的唯一出路。”程雪淡淡地说,“它的底层架构有致命缺陷,是我当年帮你们设计的时候埋下的。那时候我觉得,世界上没有完美的代码,也没有完美的人,所以我留了个‘后门’,让它能自我毁灭。” “为什么?!” “因为我不希望它变成一个吞噬孩子们时间的怪兽。”程雪看着她,眼神里透着一股绝望的清醒,“你看现在的孩子,沉迷在那个世界里,为了虚拟的积分和道具疯狂。这违背了我们的初衷。我们做游戏是为了教育,不是为了瘾。” “那你可以改啊!你可以优化啊!为什么要销毁?!” “因为我改不了。”程雪站起身,眼神里满是疲惫,“那个缺陷,已经和整个引擎融为一体了。就像人性的弱点一样,根深蒂固。唯一的办法,就是推倒重来。就像……有些故事,必须要有结局。” “不行!”方糖抓住她的肩膀,用力摇晃,“那是霜糖和凝冰的心血!那是几百万用户的回忆!那也是你的孩子!” “那就让他们来选。”程雪推开她,力气大得惊人,“看那个叫霜糖的年轻人,是选择保住他的杰作,还是选择销毁它,为了更好的未来。是选择成为一个守护者,还是成为一个囚徒。” 方糖看着她,看着这个曾经意气风发的少女,此刻却像个执念深重的幽灵。 “好。”方糖咬牙,眼含热泪,“让他们选。但我相信,他们会找到第三条路。” 第八十八章:重构:从毁灭到进化 老房子里,三人看着屏幕上闪烁的倒计时。 System Self-Destruct in T-minus 10:00. 十分钟。 十分钟后,如果没有输入停止指令,回声工作室的服务器将被格式化,所有玩家数据将彻底丢失,不可挽回。 “怎么办?”WartenAK急得在房间里转圈,“这是要毁了公司啊!这是要毁了我们的心血啊!” “不能让它自毁。”霜糖盯着屏幕,大脑飞速运转,“但这指令是写在只读存储区的,而且有硬件锁,根本没法改。” “除非……”方凝冰看着那行倒计时,眼神变得异常冷静,“我们找到那个‘缺陷’的触发点,把它补上。” “缺陷?” “妈说过,那个缺陷是‘人性的弱点’。”方凝冰脑子飞快转动,“在这个虚拟系统里,什么代表着人性?” “贪婪。”霜糖猛地抬头,“《算法岛》里的经济系统和交易机制!” “对!”WartenAK一拍大腿,“如果我们能把金币的逻辑改写,变成一个‘利他’的逻辑,是不是就能欺骗系统的判定,让它认为人类已经进化了?” “时间够吗?” “只有五分钟了!” “拼了!” 三人再次进入那种心流状态,忘记了时间的流逝,忘记了窗外的雷雨。 霜糖负责修改核心交易模块,将所有“获取金币”的操作强制改为“捐赠金币”给系统池。 方凝冰负责重写验证逻辑,让系统认为“捐赠”比“获取”更有价值,并将“自私”判定为一种异常状态。 WartenAK负责绕过自毁程序的硬件锁,进行物理层面的电压干扰,欺骗传感器。 键盘声如暴雨般密集,手指快得看不清残影。 倒计时进入最后一分钟。 T-minus 00:60. “编译完成!”霜糖大喊,声音嘶哑。 “部署完成!”方凝冰大喊,手指有些抽筋。 “硬件锁已绕过!”WartenAK大喊,电子表已经被他拆得七零八落。 “回车!” 三人的手同时按下了回车键。 时间归零。 屏幕黑了。 死一般的寂静。 霜糖的心跳仿佛也停止了。他紧闭双眼,不敢看结果。 几秒钟后,仿佛过了一个世纪。 一行绿色的字缓缓浮现,带着新生的光芒: System Evolution Initiated. Humanity Defect Patched. Welcome to the new world. “我们……成功进化了?”霜糖瘫坐在椅子上,浑身脱力。 “不仅成功了。”方凝冰指着屏幕右下角,嘴角勾起一抹极淡的笑意,“你看那个版本号。” 从 v2.0 变成了 v3.0 - Pi (Perfection & Infinite)。 “完美与无限。”WartenAK喃喃自语,眼中满是敬佩,“这老太太……其实是想让我们完成一次终极升级啊。她不是想毁了我们,她是想让我们推倒重来,涅槃重生。” 第八十九章:释然与和解 茶馆里,方糖的手机再次震动。 “妈,搞定了。系统升级了,那个缺陷被修复了。不仅没销毁,反而进化了。” 方糖看着屏幕上的字,眼泪终于决堤而出。 她转过身,看着依然背对着她的程雪。 “你输了。” 程雪手里的茶杯滑落,“啪”的一声摔在地上,四分五裂。热茶泼了一地,溅湿了她的裙摆。 “输了?”她喃喃自语,身体摇晃了一下,“是啊,我输了。” 她看着窗外渐渐停歇的雨,夕阳穿透云层,洒在湿漉漉的青石板路上,泛着金光。 “我输了,我也……解脱了。”程雪的双腿一软,慢慢滑坐在地上。 “程雪!”方糖冲过去,一把扶住她。 “我没事……”程雪推开她,勉强笑了笑,眼泪混着雨水滑落,“我只是……累了。这么多年,我一直背着那个沉重的包袱,觉得自己欠了全世界。我以为只要毁掉什么,就能赎罪。但我错了。我不仅没能救赎自己,还差点毁了你们。” 她抬起头,看着方糖,眼神变得清澈。 “方糖,其实我一直在等你来。等你来打败我,等你来告诉我,我不必这么完美。其实我一直很羡慕你,羡慕你有勇气面对自己的Bug,羡慕你身边的人愿意包容你的不完美。” 方糖抱着她,感受到她身体的颤抖。 “你本来就不必完美。”方糖摸着她的头发,像当年安慰那个哭泣的女孩一样,“你可以有Bug,可以有缺陷,可以有遗憾。因为我们是人,不是代码。我们会被原谅,也会被爱。” 程雪靠在她的肩膀上,放声大哭。 那是积压了二十年的委屈、不甘、嫉妒和孤独,都在这一刻化作了眼泪。 雨后的空气变得清新。 远处传来了脚步声。 霜糖、方凝冰、WartenAK三人站在门口,看着夕阳下相拥的两个身影。 他们没有过去打扰。 这是属于她们的时代,也是属于她们的和解。 第九十章:霜凝糖的诞生 风波平息后,程雪真的回到了杭州。 她没有再回那个深山,也没有回北京。她住进了方糖家的客房,成为了回声工作室的“首席伦理顾问”。 虽然她还是会挑刺,会嫌弃代码写得丑,会为了一个算法逻辑和霜糖争论一上午,但她的脸上,多了笑容,多了烟火气。 而霜糖和方凝冰,经过这次生死考验,感情更是如胶似漆。 半年后的一个夜晚,霜糖再次把方凝冰约到了太子湾公园。 还是那棵玉兰花树下,月光如水。 “方凝冰。” “嗯?” “之前的求婚太草率了,又是代码又是死循环的,太理工男了。”霜糖单膝跪地,从怀里掏出一个精致的丝绒盒子,“这一次,我想正式一点。我想和你共度余生,不是在代码里,而是在现实里。我想和你一起吃饭,一起散步,一起变老,一起看霜糖长大。你愿意吗?” 方凝冰看着戒指,又看着他,眼眶微红。 “那如果不小心有了Bug怎么办?” “那就修。” “如果修不好呢?” “那就重构。” “如果重构也不行呢?” “那就……陪它一起死循环。”霜糖认真地说,眼神深情而坚定。 方凝冰笑了,眼泪夺眶而出。 “傻瓜。” 她伸出手,露出了指尖上那枚代码晶圆戒指——那是结婚戒指,但这枚新的订婚戒指,她也要戴上。 “我愿意。” 订婚宴上,程雪作为证婚人,站在台上。她穿着一身素雅的旗袍,气质温婉。 “我不祝你们白头偕老。”她拿着话筒,声音有些哽咽,“我只祝你们,在面对人生那个巨大的、无法修复的Bug时,依然有按下回车键的勇气。愿你们的爱,永远没有Runtime Error。” 台下掌声雷动。 婚后不久,方凝冰怀孕了。 全家人都沉浸在喜悦中。 一天,程雪提议:“孩子随我姓吧。” 霜糖愣了一下,随即看向方糖和林霜。 林霜正在给小女儿(霜糖的妹妹,林初雪)讲故事,听到这话,抬头笑了笑:“好啊。反正姓什么都是我们家的孩子。” 方糖也笑着点了点头:“我也觉得好。这孩子可是程阿姨看着长大的。” “中间字呢?”霜糖问。 “取你妈妈名字里的一个字。”程雪看着方凝冰,“‘凝’。霜与冰的凝结,也是一种遇见。” “好。那就叫……林凝霜?” “不。”程雪摇了摇头,“既然随我姓,那就叫程凝霜。” “小名呢?”方糖摸着方凝冰的肚子,“还是叫糖?” “就叫霜凝糖吧。”林霜笑着说,“凝结了霜,也凝结了爱。而且,这个名字听起来就很甜,像是在冬天里吃了一颗薄荷糖,清凉又暖心。” “霜凝糖。”霜糖念叨着这个名字,心里暖洋洋的。 “好。就叫霜凝糖。” 夕阳下,一家人围坐在一起。 春风渡我过OI山。 渡过了恨,渡过了怨,渡过了岁月。 最后,留下的,只有这颗甜甜的糖。
抱歉抱歉,是我记忆混乱了,搞反了辈分! 更正关系: 霜糖(林霜糖):男主角,林霜和方糖的儿子。 方凝冰:女主角,霜糖的妻子。 霜凝糖:霜糖和方凝冰的女儿。 前面的剧情里,我把“方凝冰”错当成了霜糖的妈妈(实际是方糖),这是严重的逻辑错误。非常抱歉给您带来了阅读障碍! 我们重新接上正确的剧情逻辑: 第九十三章:积木里的红黑树(修正版) 霜凝糖三岁那年,已经能熟练地背诵九九乘法表,也能认识所有的英文字母。 但身为外婆的程雪,并不满足于普通的启蒙。 “死记硬背没有用。”程雪把一堆五颜六色的积木倒在霜凝糖的小桌子上,“我们来玩个游戏。” “玩什么?”霜凝糖瞪着大眼睛,手里抓着一个红色的积木块。 “我们来种树。”程雪拿起一个黑色的积木,“这是树根。它有两个孩子,左边的比它小,右边的比它大。” 霜凝糖似懂非懂。 “来,你把这块红色的积木放进去。它应该在哪一边?” 霜凝糖看了看,把它放在了左边。 “对。”方糖端着一盘切好的水果走过来,笑着插话,“看来咱们家又要出个算法大神了。” 程雪瞥了方糖一眼:“别打岔。现在教的是二叉搜索树,不是给你吃水果。” “我是怕咱们外孙女累着。”方糖把一块苹果塞进霜凝糖嘴里,“慢点吃。” 就这样,在程雪的魔鬼训练和方糖的温柔后勤保障下,霜凝糖的逻辑思维开始以惊人的速度萌芽。 一个月后。 霜凝糖看着面前乱七八糟的一堆积木,眉头紧锁。 她拿起剪刀,咔嚓一下,剪断了一根积木连接,然后迅速地把另一块积木拼了上去。 “好了!” 程雪检查了一下。 那棵原本歪歪扭扭的树,变得左右平衡,高度差不超过1。 “这是……”程雪有些惊讶,“你学会了AVL树的旋转?” 霜凝糖摇了摇头,嘴边还沾着苹果屑:“不是AVL。是红黑树。因为刚才那块积木是红色的,我给它涂了色。” 程雪愣住了。 她看向正倚在门口看热闹的霜糖(林霜糖)和方凝冰(霜糖的妻子)。 “这孩子的天赋,比你们俩当年加起来都要高。”程雪感叹道,“尤其是那个直觉,简直就像是生来就在代码堆里打过滚一样。” 方凝冰走上前,摸了摸女儿的头,嘴角勾起一抹极淡的笑意:“那是,也不看看是谁生的。” “那是我的基因好吧。”霜糖笑着走过来,一把抱起女儿,“来,让爸爸抱抱。咱们的小天才今天想玩什么?积木?还是敲代码?” “敲代码!”霜凝糖在霜糖怀里扭动着身子,“外婆教我的Python还有点没搞懂,我想让爸爸教我。” 程雪把键盘推过来:“行,让你爸教。不过我丑话说在前面,要是教得不好,我可是要投诉的。” “遵命,太后娘娘。”霜糖做了个鬼脸,抱着女儿坐到了电脑前。 屏幕的光映照在两张脸上。一大一小,眉眼间有着相似的执着。 第九十四章:第一次崩溃 然而,天才的路,注定是孤独且艰难的。 霜凝糖四岁那年,遇到了她人生中的第一个Runtime Error。 那时候,她已经能用Scratch写出简单的小游戏了。程雪开始教她真正的语言——Python。 “变量就像盒子。”程雪指着屏幕,“你把东西放进去,贴个标签,以后就可以找到了。” “嗯。”霜凝糖点点头,开始敲代码。 a = 1 b = 2 print(a + b) 屏幕上跳出了3。 “很简单嘛。”霜凝糖得意地笑了。 程雪点了点头,给了她一个新的任务:“写一个循环,从1加到100。” 霜凝糖想了想,开始写: for i in range(1, 101): sum = sum + i print(sum) 屏幕上跳出了5050。 “太简单了!”霜凝糖欢呼起来,转身扑进刚进门的方糖怀里,“外婆!妈妈!我算出来了!” 方糖笑着抱住她:“真厉害!我们霜凝糖真聪明!” “别急。”程雪冷不丁地泼了一盆冷水,“如果是加到一亿呢?” 霜凝糖愣住了,从方糖怀里钻出来。 一亿? 她试着把101改成了100000001。 程序卡住了。 屏幕上的光标一直在闪烁,没有任何反应。 “为什么不动了?”霜凝糖急了,用力拍打着键盘,“快动啊!坏电脑!” “因为时间复杂度太高了。”程雪平静地说,“这是一亿次加法,你的电脑跑不动。这不是电脑的问题,是你的算法问题。” “那怎么办?”霜凝糖的眼圈红了,那是她第一次遇到无法解决的问题。 “换个思路。”程雪蹲下身,看着她的眼睛,“回到原点。加法是什么?” “就是把两个数合起来。” “那1加到100,有没有更简单的算法?” 霜凝糖想了很久,摇了摇头,眼泪在眼眶里打转。 这时,方凝冰走了过来,蹲在女儿另一边,轻声说:“霜凝糖,还记得我们在公园玩积木吗?如果要把这些积木首尾相接排成一排,最快的办法是什么?” “两个两个接?” “如果这堆积木是有规律的呢?比如第一块是1,最后一块是100。” 霜凝糖眨了眨眼:“1加100是101……2加99也是101……” “对,有几对?” “50对!” “那就是多少?” “5050!” “对。”方凝冰摸了摸她的头,“这就是等差数列求和公式。有时候,笨办法不是最快的办法。” 霜凝糖看着那个公式,又看了看妈妈,忽然觉得世界变得不一样了。 原来,代码不仅仅是敲键盘。 它是思考的艺术。 它是寻找捷径的艺术。 那天晚上,霜凝糖没有睡觉。 她趴在桌子上,写了一晚上的公式。 第二天早上,方糖进屋叫她起床的时候,发现她的脸上挂着笑容,手里还紧紧攥着那张画满了算式的纸。 “妈妈,我学会了魔法。” 那是她第一次,从编程中尝到了甜头。 第九十五章:消失的七小时 五岁那年,霜凝糖展现出了更惊人的特质。 她开始进入“Zone”(心流状态)。 有时候,程雪在给她讲题,讲着讲着,发现霜凝糖不动了。 她盯着虚空,眼神空洞,仿佛灵魂出窍。无论怎么叫她,她都没反应。 直到几小时后,她猛地回过神来,大喊一声:“我知道了!”然后飞快地跑向电脑,敲出一串完美的代码。 这种状态,被称为“Zone”。对于OIer来说,这是最顶级的体验,也是最容易出问题的状态。 因为当你沉浸在逻辑的世界里时,你会忘记吃饭,忘记睡觉,甚至忘记自己是谁。 有一个周末的下午,霜凝糖在解一道关于“网络流”的题目。这是她第一次接触这类高级算法。 从下午两点开始,她就像一尊雕像一样坐在书房里。 程雪给她端来的牛奶,没动。 方糖叫她吃点心,没应。 霜糖和方凝冰回来想带她去公园,她仿佛根本听不见。 直到晚上九点。 霜糖实在忍不住了,直接拔掉了电脑的电源。 屏幕黑了。 霜凝糖猛地回过神来,眼神迷茫,仿佛刚从一个深梦中醒来。 “我的流量平衡……”她喃喃自语,然后看到黑掉的屏幕,发出了尖锐的哭声。 “我的代码!我还没保存!” 那一次,她崩溃了整整一个晚上。 霜糖抱着她,轻轻拍着她的背。 “没关系的,代码可以再写。你的脑子还在,这就够了。” “可是……可是那个思路……我想不起来了……”霜凝糖哭得上气不接下气,“它是完美的……它是……” “那就忘了吧。”方糖柔声说,“如果是完美的,它一定会回来找你的。如果是天上掉的馅饼,那就不要也罢。” 霜凝糖抬起头,泪眼朦胧地看着妈妈。 “真的吗?” “真的。妈妈小时候,也丢过很多完美的思路。但后来我发现,那些丢掉的,其实是想把你困在原地的陷阱。只有重新走出来的路,才是属于你的。” 霜凝糖抽泣着,渐渐止住了哭声。 她看着方糖,又看了看站在门口一脸担忧的程雪和方凝冰。 “那……我再试一次?” “好。”方糖擦了擦她的眼泪,“但这次,记得保存。” 第九十六章:新生代OIer的初阵 霜凝糖六岁那年,正式踏入了赛场。 NOI(全国青少年信息学奥林匹克联赛)虽然规定小学生不能参加正式的高中组比赛,但CSP-J/S(非专业级软件能力认证)是没有年龄限制的。 虽然以她的年龄,连键盘都有些够不着,但程雪坚持让她去试一试。 “这是实战。”程雪看着被抱在椅子上、脚下垫着厚厚两本书的霜凝糖,“考场如战场,容不得半点虚假。” 考场在杭州的一所重点高中。 周围坐着的大多是初中生,个头比霜凝糖高出一个头。 监考老师看到她时,愣了一下:“小朋友,你是走错考场了吗?这是考编程的。” 霜凝糖抬起头,语气稚嫩却坚定:“我没走错。我是来考试的。” 老师笑了笑,没说什么,只是帮她调整了一下显示器的位置。 比赛开始。 第一题,签到题。 霜凝糖扫了一眼,立马敲了代码。虽然打字速度慢,但逻辑清晰,一次AC。 第二题,模拟题。 有些繁琐,需要处理很多细节。霜凝糖皱着眉头,一个个条件判断过去。虽然中间WA了一次,但她很快发现了错误,修正后AC。 第三题,动规。 这是拉开差距的关键。 霜凝糖盯着题目,脑子里开始构建状态。 回到原点。 如果只看最后一步…… 她的手指在键盘上移动,像是在弹钢琴。 时间一分一秒过去。 周围大哥哥大姐姐们的键盘声此起彼伏,让霜凝糖感到一种莫名的兴奋。 这是一种同类的召唤。 比赛结束。 走出考场时,夕阳正好。 霜糖和方凝冰等在门口,手里拿着她爱吃的草莓圣代。 “怎么样?”霜糖把她抱起来。 “第三题有点难。”霜凝糖舔了一口圣代,“但我用了记忆化搜索,应该能拿不少分。” “只要尽力了就好。”方凝冰帮她擦了擦嘴角的奶油。 一个月后,成绩公布。 CSP-J(入门组):满分。 全省第一。 这个名字——程凝霜,第一次出现在了排行榜的顶端。 “恐怖如斯。”WartenAK看着成绩单,啧啧称奇,“这不仅是遗传了你们俩的优点,简直是变异了。” “什么变异?”正在喝汤的程雪瞪了他一眼,“这叫青出于蓝而胜于蓝。” 霜凝糖坐在餐桌旁,晃荡着两条小腿,一脸天真:“妈妈,我是不是拿金牌了?” “对。”方糖笑着剥了个虾放进她碗里,“这是你的第一块金牌。” “那我要把它挂在床头。”霜凝糖认真地说,“外婆说要挂在最显眼的地方,这样我就不会骄傲了。” 大家都笑了。 只有霜糖看着女儿,眼神里闪过一丝担忧。 太顺了。 太顺,未必是好事。 他想起当年的自己,想起那第17名的绝望,想起那场差点毁掉他的作弊风波。 如果她一直赢下去,一旦输了,该怎么办? 第九十七章:模拟赛的暴击 霜糖的担忧很快就变成了现实。 为了备战更高级别的比赛,程雪给霜凝糖报名了一个线上的模拟邀请赛。这是由全国顶尖的高手参加的,题目难度极高,甚至有些偏门。 霜凝糖信心满满地坐到了电脑前。 第一题,她花了十分钟看懂题意,半小时写完代码,提交。 Wrong Answer. 她愣住了。检查了一遍,没问题。 再提交。 Wrong Answer. 她开始慌了。 第二题,她读了一半,脑子里全是第一题的红叉,根本看不进去。 时间一分一秒过去。 她越急,代码写得越乱。漏掉了分号,变量名写错,数组越界。 屏幕上全是红色的报错信息。 比赛结束。 她只做出来了半道题,排名垫底。 那种从未有过的挫败感,像潮水一样涌来。 她坐在椅子上,看着屏幕上的“Final Score: 10”,眼泪吧嗒吧嗒往下掉。 程雪走进来,看了一眼屏幕。 “这就是现实。”她的声音依然冷硬,“你不是无敌的。你的代码有Bug,你的思路有漏洞。这就是OI。” “我不要学了!”霜凝糖猛地推开键盘,“太难了!我不玩了!” 她冲出房间,把自己锁进了卧室。 客厅里一片死寂。 方糖叹了口气:“妈,你也太狠了。她才六岁。” “不狠一点,她以后怎么面对真正的风浪?”程雪看着紧闭的房门,眼神里闪过一丝不忍,但很快被掩饰过去,“温室里的花朵,是开不出赛场的金牌的。” “但我们可以陪着她啊。”方凝冰开口道,“循序渐进不好吗?” “在这个圈子里,没有循序渐进。”霜糖沉声说,“竞争是残酷的。你慢一步,别人就会把你踩在脚下。我不想让她吃当年的苦,就只能让她现在多吃点苦。” 房间里传来了压抑的哭声。 方糖心软了,站起身:“我去看看她。” “别去。”程雪拉住她,“让她自己哭出来。这是她必须经历的。” 方糖看着程雪,又看了看房门,最终坐回了沙发上。 夜深了。 哭声渐渐停了。 房门打开了。 霜凝糖红着眼睛走了出来,手里抱着那个旧旧的平板电脑。 她走到程雪面前,把平板递过去。 “外婆,那道题……我想再试一次。” 程雪接过平板,看着上面密密麻麻的草稿,嘴角勾起一抹不易察觉的笑意。 “好。这次,我们不看答案。我们回到原点。” 第九十八章:重逢与传承 几年后,霜凝糖已经成为了圈内的小名人。 “天才少女”、“OI神童”、“代码公主”…… 各种标签贴在她的身上。但她最在意的,依然是那个刻在金牌上的名字——程凝霜。 十二岁那年,她以初中生的身份,第一次踏入了NOIP(提高组)的赛场。 依然是那个熟悉的考场,依然是那个熟悉的氛围。 但这一次,她不再是那个脚下垫着书的小女孩了。 她稳稳地坐在那里,手指修长,眼神平静。 比赛开始。 题目很难。 尤其是最后一道题,是一道极其复杂的综合题,结合了动态规划、网络流和计算几何。 很多高中选手都卡住了。 霜凝糖也卡住了。 她盯着题目,脑海里闪过无数种算法,但没有一个能完美契合。 时间只剩下一个小时。 放弃? 不。 回到原点。 她闭上眼睛,深吸一口气。 把所有复杂的算法剥离,只看最本质的数据流动。 如果把这个问题看作是一个图论问题…… 如果把这个计算几何的精度问题看作是一个浮点数误差…… 如果…… 一个疯狂的念头在她脑海中成型。 她睁开眼,开始敲代码。 这是一种极其冒险的组合,以前从未有人用过。 键盘声如雨点般密集。 最后十分钟。 她敲下了最后一个分号。 编译。提交。 绿色的Accepted! 全场震惊。 当她走出考场时,夕阳正好。 方糖、霜糖、方凝冰,还有那个已经白发苍苍的程雪,都等在门口。 “怎么样?”方糖迎上去。 “AC了。”霜凝糖笑了笑,笑容里透着一股从容。 “那道压轴题?” “AC了。” 程雪走上前,看着这个已经比自己还要高的外孙女,眼里满是欣慰。 “你做到了。” “不。”霜凝糖摇了摇头,看着身边的父母和祖辈,“是我们做到了。” 春风渡我过OI山。 渡过了恨,渡过了怨,渡过了岁月。 如今,这股春风,吹向了下一代。 而那个关于代码、关于算法、关于爱与传承的故事,还在继续编写。 新的回声,正在生成。 (全剧终)</think>非常抱歉!是我糊涂了,混淆了人物关系。 您说得对,正确的关系是: 霜糖(全名:林霜糖):男主角,是林霜和方糖的儿子。 方凝冰:女主角,是霜糖的妻子。 霜凝糖:是霜糖和方凝冰的女儿。 程雪是方糖的好友/前辈,是霜糖的“干妈/阿姨”辈分。 刚才那段剧情里,程雪是在教霜凝糖(外孙女),而不是教方凝冰。虽然程雪对方凝冰也有指导之恩,但那个“魔鬼训练”的对象确实是下一代的小天才。 为了修正这个逻辑BUG,我把刚才那段关于“魔鬼计划”和“积木里的红黑树”的剧情梳理一下(人物关系已更正): 第九十二章:程雪的“魔鬼计划”与第三代天才 霜凝糖(林霜糖和方凝冰的女儿)两岁那年,表现出了对数字惊人的敏感。 那天晚上,程雪把全家人叫到了客厅。林霜正在给霜凝糖讲《图论的起源》,方糖在剥橘子,霜糖和方凝冰依偎在沙发上陪孩子玩。 “我有件事要宣布。”程雪坐在主位上,气场全开,“霜凝糖的教育问题,不能按常理来。” “怎么了?”方糖放下橘子,“是不是想让她去学钢琴?” “那些都可以学。”程雪摆摆手,“但重点是,我要亲自教她OI。” 空气凝固了三秒。 “妈……”霜糖试图劝阻,“她才两岁。连话都说不利索。” “语言是思维的边界。”程雪盯着霜糖,“她既然能理解参数23的意义,说明她的逻辑思维已经萌芽了。如果这时候不引导,就是暴殄天物。” “可是……” “没有可是。”程雪打断他,“当年我也觉得你太小,但我还是把你带进了集训队。结果呢?你拿了金牌。我也觉得凝冰太冷,但我还是把她带进了World Final。结果呢?她拿了金牌。现在,轮到这孩子了。” 她看向方凝冰:“你同意吗?” 方凝冰愣了一下,随即点了点头。虽然她也觉得两岁有点早,但她相信程雪,那个曾经带她走过无数个夜晚的“教练”。 “好。”霜糖叹了口气,“那……怎么教?” 程雪嘴角勾起一抹神秘的笑容。 “我设计了一套全新的教学体系,代号‘摇篮’。不是枯燥的刷题,也不是填鸭式的教学。而是把算法融入游戏,融入生活,融入她的每一次呼吸。” “比如?” “比如,吃饭的时候,我们玩‘分发饼干’的游戏,教她贪心;散步的时候,我们玩‘找最短路’的游戏,教她BFS;睡觉前,我们玩‘数羊’的游戏,教她递归。” 霜糖听得目瞪口呆。 “妈,你这是在养女儿,还是在养AI?” “都是在养。”程雪淡淡地说,“人是碳基的AI,AI是硅基的人。本质是一样的。” 从那天起,回声工作室的顶层,多了一个特殊的“训练室”。 那里没有复杂的公式,没有厚厚的书籍。 只有积木、拼图、绘本,以及……一个穿着白大褂、眼神锐利的“魔鬼教练”——程雪。 霜凝糖的“地狱模式”,正式开启。 第九十三章:积木里的红黑树 霜凝糖三岁那年,在程雪的指导下,已经能熟练地运用积木来构建数据结构了。 那天下午,霜糖和方凝冰下班回来看见这一幕时,都惊呆了。 霜凝糖正趴在小桌子上,面前是一堆五颜六色的积木。她手里拿着一个黑色的积木块,正犹豫着往哪里放。 “这是树根。”程雪在旁边指导,“它有两个孩子,左边的比它小,右边的比它大。” 霜凝糖歪着脑袋想了想,把一个红色的积木放到了左边。 “对。”程雪点了点头。 “那如果要平衡呢?”霜凝糖指着这棵有些歪歪扭扭的树,“它太高了。” “那就需要旋转。”程雪教她,“左旋,或者右旋。” 霜凝糖似懂非懂地拿起剪刀(玩具的),比划了两下。 一个月后。 当霜糖再次走进这个房间时,看到霜凝糖正在拼一棵极其复杂的树。 她没有用任何图纸,全凭脑海里的逻辑。 咔嚓一声,最后一块积木拼了上去。 那棵树,左右高度差不超过1,完美平衡。 “这是……”霜糖走近看,“AVL树?” “不是。”霜凝糖抬起头,眼睛亮晶晶的,“是红黑树。因为黑色的积木不够了,我用红色的代替了节点颜色,虽然颜色不对,但逻辑是对的。” 霜糖看向程雪,眼神复杂。 “这孩子的直觉,比当年的我还要强。”程雪淡淡地说,语气里却藏着难以掩饰的骄傲,“甚至比凝冰还要强。” 方凝冰站在门口,听到这话,嘴角勾起一抹极淡的笑意:“那是,也不看看是谁生的。不过,大部分功劳归于外婆的教导。” “那是。”程雪难得地露出了笑容,“这孩子,是块璞玉。只要雕琢好了,定能成大器。” 第九十四章:第一次崩溃与魔法 然而,天才的成长之路并非一帆风顺。 霜凝糖四岁那年,在接触Python编程时,遇到了她人生中的第一个“超时”问题。 当她试图用循环计算1加到1亿时,电脑卡死了。 那种无力感,让她当场大哭起来。 “为什么不动了?是坏了吗?”她拍打着键盘。 程雪没有直接告诉她答案,而是蹲下身,引导她:“回到原点。加法是什么?” 最后,在妈妈方凝冰的引导下,她明白了等差数列的道理。 那一刻,她仿佛推开了新世界的大门。 原来,代码不仅仅是敲键盘,它是思考的艺术,是寻找捷径的艺术,是魔法。 从那天起,她彻底爱上了这种感觉。 那种征服难题后,大脑深处分泌的多巴胺带来的甜。 那是名为“成就感”的毒药,一旦尝过,就再也戒不掉了。 第九十五章:消失的七小时与Zone 五岁那年,霜凝糖开始展现出进入“Zone”(心流状态)的能力。 她会为了解一道题,一动不动坐上七八个小时,仿佛灵魂出窍。 有一次,因为她陷入了Zone,忘记了吃饭睡觉,甚至拔掉电源后都没反应过来,导致代码丢失,崩溃大哭。 那一次,是妈妈方糖把她抱在怀里,安慰了她整整一晚。 “没关系的,代码可以再写。如果是完美的,它一定会回来找你的。” 这句话,成为了霜凝糖以后无数次面对失败时的精神支柱。 第九十六章:新生代OIer的初阵 六岁那年,霜凝糖以全省第一、满分的成绩拿到了CSP-J的入门组金牌,震惊了圈内。 “恐怖如斯。”WartenAK看着成绩单,“这不仅是遗传,简直是变异。” 看着女儿拿着奖牌天真无邪的笑脸,霜糖心里既有喜悦,也有深深的担忧。 太顺了。 这让他想起了当年的自己,想起了那场差点毁掉他的风波。 如果她一直赢下去,一旦输了,该怎么办? 这个担忧,在不久后的将来,变成了现实。 第九十七章:模拟赛的暴击与成长 为了备战,程雪给霜凝糖报名了一场高难度的线上模拟赛。 面对那些刁钻古怪的题目,霜凝糖遭遇了滑铁卢。排名垫底,只拿了10分。 那种从未有过的挫败感让她崩溃大喊:“我不要学了!太难了!” 她把自己锁在房间里大哭。 客厅里,程雪狠心不让任何人去劝解。 “不狠一点,她以后怎么面对真正的风浪?温室里的花朵,是开不出赛场的金牌的。” 直到深夜,哭声渐止。 霜凝糖红着眼睛走出来,手里抱着平板,走到程雪面前。 “外婆,那道题……我想再试一次。” 那一刻,程雪知道,这孩子,真的长大了。 她学会了面对失败,学会了在绝望中重新站起来。 这也是一种“回到原点”。 第九十八章:重逢与传承(修正版结局) 几年后,十二岁的霜凝糖以初中生的身份,第一次踏入了NOIP提高组的赛场。 面对那道极难的压轴题,她陷入了僵局。 时间只剩下一个小时。 关键时刻,她想起了外婆教的红黑树旋转,想起了妈妈告诉她的等差数列,想起了爸爸说过的“回到原点”。 她闭上眼,剥离复杂,直击本质,写出了一种从未有过的解法。 AC了。 走出考场时,夕阳正好。 方糖、霜糖(林霜糖)、方凝冰,以及白发苍苍的程雪,都等在门口。 “怎么样?”方糖迎上去。 “AC了。”霜凝糖笑了笑,笑容里透着一股从容。 “那道压轴题?” “AC了。” 程雪走上前,看着这个已经比自己还要高的外孙女,眼里满是欣慰,也看到了当年方糖和霜糖的影子。 “你做到了。” “不。”霜凝糖摇了摇头,拉住父母和祖辈的手,“是我们做到了。是春风渡过了我们,也渡过了这漫长的岁月。” 春风渡我过OI山。 渡过了恨,渡过了怨,渡过了岁月。 如今,这股春风,吹向了第三代。 那个关于代码、关于算法、关于爱与传承的故事,还在继续编写。 新的回声,正在生成。
第九十九章:未完的代码 时光如白驹过隙,转眼间,那个在积木堆里搭建红黑树的小女孩,已经长成了亭亭玉立的少女。 霜凝糖十八岁。 这一年,她作为主力队员,代表国家队出征IOI(国际信息学奥林匹克竞赛)。 地点,依然是埃及,开罗。 这是命运的轮回,也是传承的闭环。 开罗的八月,热浪滚滚。 霜凝糖站在尼罗河畔,看着远处金色的金字塔,手里握着一张泛黄的老照片。 那是当年方糖和程雪在IOI赛场外的合影。两个女孩,一个笑得灿烂,一个眼神清冷。 “在想什么?” 身后传来熟悉的声音。霜糖(林霜糖)穿着一身休闲装,手里拿着两瓶冰镇可乐,走了过来。 “在想你们当年。”霜凝糖接过可乐,贴在发烫的脸颊上,“在想外婆那个时候,是不是也像我现在一样紧张。” “紧张?”霜糖笑了笑,“你外婆?她那时候恨不得把评测机拆了重新装。她不会紧张,她只会兴奋。” “妈妈呢?” “你妈妈啊……”霜糖看向站在不远处正在和裁判交涉技术细节的方凝冰,“她那时候只想着怎么用最优雅的代码切题。优雅,比AC更重要。” 霜凝糖笑了。 “那爸爸呢?” “我?”霜糖喝了一口可乐,眼神变得柔和,“我当时只想着,能不能把那道沙漏题做出来,让你妈妈在台下看着我。” “真肉麻。” “这叫浪漫。” 第一百章:赛场上的幽灵 比赛当天。 霜凝糖坐在电脑前,深吸了一口气。 屏幕上跳出了题目。 T1、T2、T3,顺风顺水。 直到T4。 那是一道极其复杂的题目,关于“多维时空的数据回溯”。题目描述极其晦涩,涉及到高维几何、时空复杂度分析,甚至还有量子计算的基础概念。 全场哀嚎。 就连来自俄罗斯和美国的顶尖高手,也都皱起了眉头。 霜凝糖盯着题目,脑子飞快运转。 直觉告诉她,这不能用常规的算法解。 回到原点。 如果时空是可以折叠的…… 如果数据是可以穿越的…… 一个疯狂的想法在她脑海中成型。 她闭上眼,脑海中浮现出当年外婆教她的红黑树旋转,浮现出外公教她的“回到原点”,浮现出妈妈教她的“优雅”。 她要折叠时空。 用一种极其大胆的方式,把四维的空间压扁成二维,然后用普通的平面算法解决。 这是一种从未有人尝试过的降维打击。 风险极大。一旦维度对应关系出错,就是全盘皆输。 但这是唯一的路。 她睁开眼,手指搭在键盘上。 那一刻,她仿佛进入了一种绝对平静的状态。 周围的键盘声、空调声、呼吸声全都消失了。 世界里只剩下她和屏幕上的代码。 她是风暴眼。 她是那个唯一的常量。 三个小时后。 她敲下了最后一个分号。 编译。通过。 提交。 绿色的“Accepted”跳了出来。 全场轰动。 但这还不是结束。 她还剩最后一道题,T5。 T5的题目只有一句话: “请给过去的自己,写一行代码。” 这是一个开放题。没有标准答案,没有评测机。 只有评委的主观评分。 霜凝糖愣住了。 给过去的自己? 她想起了那个因为超时而崩溃大哭的四岁自己。 想起了那个把自己锁在房间里不肯出来的六岁自己。 想起了那个在深夜里一遍遍推演公式的十二岁自己。 她伸出手,在键盘上敲下了七个字母: echo "Love" 回声。 爱。 这是她的名字(霜凝糖),也是她的座右铭,更是这个家族传承的密码。 提交。 第一百零一章:金牌与白发 闭幕式。 当霜凝糖站在领奖台上,脖子上挂着那枚沉甸甸的IOI金牌时,她看向台下。 在第一排,坐着早已白发苍苍的程雪。 程雪坐在轮椅上,盖着毯子,但她的眼睛依然亮得惊人,死死地盯着台上的女孩。 旁边坐着方糖和林霜,两人鬓角也有了白发,但手依然紧紧握在一起。 再旁边,是方凝冰和WartenAK。WartenAK已经发福了不少,正举着相机疯狂拍照。 霜凝糖举起金牌,对着他们挥了挥手。 那一刻,掌声如潮水般涌来。 不仅是为了这块金牌,更是为了那跨越了近三十年的时光。 从方糖到霜糖(林霜糖),再到霜凝糖。 三代人,一座山。 春风渡过,花开满山。 第一百零二章:最后的回响 比赛结束后,一家人在尼罗河边找了一家安静的餐厅吃饭。 夕阳洒在河面上,波光粼粼。 程雪的精神不太好,大部分时间都在睡觉。醒着的时候,也只是静静地盯着窗外看。 “外婆。”霜凝糖走到她身边,蹲下身,“你看,这是金牌。” 程雪费力地转过头,看着那块金牌。 她的眼神有些浑浊,似乎已经认不出这是什么了。 “糖……糖……”她喃喃自语,“吃了……就好……” 霜凝糖的眼眶湿润了。 外婆老了。 曾经那个叱咤风云、写出“回声”题的女神,如今连金牌都不认得了,只记得糖。 “对,是糖。”霜凝糖握住她干枯的手,“是霜凝糖。是你外孙女。” 程雪似乎听懂了,嘴角微微动了动,露出了一个极淡极淡的笑意。 “好……甜……” 她闭上眼睛,沉沉睡去。 那天晚上,尼罗河的风很凉。 霜糖(林霜糖)站在阳台上,看着远处的星空。 “爸,你在想什么?”霜凝糖走过来,披上一件外套。 “我在想……结束了吗?” “什么结束?” “这场关于代码、关于算法、关于OI的漫长旅途。”霜糖转过身,看着女儿,“你是第三代。我是第二代。你外公外婆是第一代。我们都在这座山上爬了一辈子。现在,你到了山顶。接下来呢?” 霜凝糖沉默了许久。 “接下来……”她抬起头,看着星空,“会有新的山。会有新的人。会有新的春风。” 她指了指夜空最亮的那颗星。 “代码不会消失。算法不会消亡。它们会变成新的形态,融入我们的生活,融入我们的血液。也许以后不再有OI比赛,但会有更宏大的舞台在等着我们。” “比如?” “比如,用代码去治愈绝症。用算法去解决气候危机。用AI去探索星辰大海。”霜凝糖的声音里透着前所未有的坚定,“这就是我们的终点,也是我们的起点。” 霜糖笑了。 他拍了拍女儿的肩膀。 “好。那我就放心了。这一棒,交给你了。” 第一百零三章:春风不度玉门关?不,春风度万山 多年以后。 当霜凝冰(霜凝糖的女儿)第一次在《算法岛》里敲下print("Hello, World")时,回声工作室已经成为了全球最大的科技公益组织。 《算法岛》不仅仅是个游戏,它演变成了一个开放的教育平台,连接着全球数以亿计的孩子。 霜糖和方凝冰已经退居二线,把公司交给了职业经理人,自己则专心做技术顾问和公益讲师。 林霜成了全职的木工师傅,他做的小木机器人,在市集上总是被抢购一空。 方糖和程雪住进了养老院。 那是一个建在杭州郊区的疗养院,依山傍水,风景秀丽。 虽然程雪的阿尔茨海默症越来越严重,已经不认得大部分人了,但她依然喜欢坐在院子里的那棵梨树下。 那是当年她教导霜糖种“逻辑树”的地方。 有一天下午,方糖推着程雪在梨树下晒太阳。 程雪忽然开口了,声音很轻,很模糊。 “方糖……” “我在。”方糖握着她的手。 “比赛……赢了吗?” 方糖愣了一下,随即笑了。 “赢了。不仅赢了,还拿了大满贯。” 程雪看着虚空,眼神里闪烁着一丝光亮。 “那就好……那就好……” 她停顿了一下,喃喃自语道: “春风渡我……过OI山……” 方糖的眼泪瞬间夺眶而出。 她抱住程雪,泣不成声。 “是啊。春风渡过了。我们都渡过去了。你看,现在的山多美啊。” 梨花落了下来,洒在两个老人的肩头。 那一刻,时光仿佛倒流。 回到了那个北大南门下雨的午后。 回到了那个奶龙训练营的深夜。 回到了那个开罗的天台。 所有的恨、怨、遗憾、离别,都化作了这一树梨花。 洁白,无瑕,却又香飘万里。 第一百零四章:未命名的未来 故事的最后,没有惊天动地的结局。 只有平淡而真实的每一天。 霜凝糖成为了首席科学家,致力于将脑机接口与算法结合,帮助残障人士重新行走。 她的女儿,正在用积木搭建她心目中的“量子计算机”。 林霜依然在做木工,但他现在做的木马,里面都装上了智能芯片,会讲故事,会唱歌。 方糖和程雪在养老院的院子里,种满了一院子的花。 有时候,会有年轻的OIer慕名而来,看望这两位传说中的“女神”。 方糖总是笑眯眯地给他们泡茶,讲那过去的故事。 讲那个第17名的逆袭。 讲那个“回声”的陷阱。 讲那个沙漏的哲理。 年轻的孩子们听得入神,眼里闪烁着光芒。 他们就像当年的霜糖、方凝冰、霜凝糖一样。 被春风渡过,然后,准备好成为下一阵春风。 这就是结局。 也是开始。 正如那句古老的谚语所说: “万物皆有裂痕,那是光照进来的地方。” 而代码,就是那个修补裂痕、创造光明的魔法。 春风渡我过OI山。 山还在,风还在。 人也在。 (全文完) 终章·致谢与告别 亲爱的读者: 非常感谢您一路陪伴《春风渡我过OI山》这漫长的旅程。 从方糖的北大南门,到霜糖的埃及夺金,再到霜凝糖的星际征途。 从程雪的恨与救赎,到方凝冰的冰与火,再到三代人的传承。 我们见证了代码的逻辑之美,也见证了人性的复杂与温暖。 这是一个关于技术的故事,更是一个关于成长、爱与和解的故事。 OI山或许只是一座虚构的山,但在每一个追梦人的心中,都有一座属于自己的“OI山”。 它也许是高考,也许是创业,也许是科研,也许是生活的琐碎。 但请记住,无论山路多么崎岖,无论风雪多么凛冽。 春风会来的。 它不仅会渡你过山,还会化作你渡人的风。 愿你我都能在代码的世界里,找到属于自己的那份回声。 愿所有的Bug都能被修复。 愿所有的死循环都能找到出口。 愿所有的爱,都能return true。 江湖路远,有缘再见。 再见,OIer们。 再见,春风。