【蓝牙设备已断开。】
灰色提示挂在屏幕右下角。
苏晚晴看了一眼。
没有立刻慌。
第二题的倒计时已经开始。
八分四十多秒。
语音协作通道仍然显示开放。
断的是她这边的耳机连接。
不是工作人员宣布讨论结束。
理论上。
可以重新连。
——
她先点了一次连接。
耳机盒就在桌边。
设备名称还在。
转圈。
两秒。
三秒。
【连接失败。】
苏晚晴停手。
没有继续反复点。
更没有拿起手机给林辰另拨电话。
公开规则允许的是当前登记通道里的限时讨论。
不是“这个通道坏了以后,自己随便换一种方式继续”。
真要恢复。
应该先按现场允许的设备处理。
可现在只剩八分钟。
这道题并不涉及身体安全。
也不是必须联络才能继续。
没必要为了恢复蓝牙。
把做题时间耗掉。
——
她摘下耳机。
放到桌面。
重新看题。
第二题确实比第一题复杂。
给出一组按时间顺序发生的操作。
要求计算满足条件的连续区间。
中间有无效记录。
同一时刻还可能出现重复项。
最后除了结果数量。
还要输出最早符合条件的一段位置。
苏晚晴第一遍看下来。
只有一个感觉:
条件很多。
——
以前她最不喜欢的。
就是这种看起来每一句都不难。
合在一起却很容易漏掉一条的题。
林辰以前教她的时候。
反而很喜欢把这种东西拆成几个框。
“先别想怎么写。”
“先问它到底给了什么。”
输入。
有效条件。
状态怎么变化。
什么时候记结果。
最后要什么。
苏晚晴在草稿纸上写下五行。
不是答案。
只是题目结构。
——
输入:
按时间顺序的记录。
第一层:
剔除无效项。
第二层:
相邻有效项满足某个连续条件。
第三层:
遇到中断就结算当前段。
输出:
数量。
最早满足要求的位置。
写完。
题目一下没那么挤了。
——
她开始考虑实现。
不需要高级算法。
至少以她现在理解。
一次顺序遍历就够。
可真正容易错的是:
最后一段如果一直持续到输入结束。
循环结束时还要再结算一次。
这是林辰以前最常提醒她的东西。
“别只在‘断掉’的时候结算。”
“最后没断。”
“程序自己不会替你补。”
当时她还嫌他说得啰嗦。
现在耳机断了。
那句话却自己冒出来。
——
苏晚晴先写最基础的框架。
当前连续段起点。
长度。
已经找到的结果数量。
最早位置。
遇到无效记录。
重置。
遇到满足连续条件的记录。
延长。
一旦断开。
检查刚才那段是否达到要求。
然后重新开始。
写到一半。
她停住。
重复项怎么办?
题目明确写:
同一时刻重复记录只保留第一条有效状态。
她差点漏了。
——
苏晚晴没有想:
林辰刚才如果还在。
应该会提醒我。
这句话没有意义。
现在提醒她的。
是自己重新读题。
她在输入处理处加一层。
先判断时间戳是否和上一条已处理记录相同。
相同则按题目规则跳过。
再进入连续段计算。
第一版完成。
运行。
样例一错。
——
时间还有五分多钟。
她看输出。
数量正确。
最早位置错了一位。
不是算法完全错。
更像下标。
她拿草稿纸。
手算样例。
题目编号从1开始。
程序内部位置从0开始。
最后输出时。
她只给结束位置加了1。
起点没加。
“……”
这问题很林辰。
不是说林辰一定会犯。
而是他以前被这种东西坑过太多次。
每次都骂:
“为什么人类和数组不能统一一下。”
苏晚晴改。
再跑。
第一个样例过。
第二个样例。
又错。
——
这次是最后一段。
她明明刚才已经想到。
循环外要结算。
却只判断了长度。
没更新“最早位置”。
苏晚晴看着自己写的代码。
忽然想笑。
知道某个坑。
和真的不踩。
是两件事。
她补全。
再跑。
两个样例都过。
——
还有三分钟。
她没有直接提交。
自己造三组输入。
全部无效。
只有最后一段符合。
有重复时间项。
第三组第一次输出错。
因为重复项被跳过后。
她用来判断连续性的“上一条记录”。
更新位置放错了。
苏晚晴重新理一遍。
只在真正接收一条有效新记录后更新。
再跑。
三个自测都对。
——
剩一分钟多。
她提交。
屏幕转圈。
【通过。】
苏晚晴靠回椅背。
没有第一时间去碰耳机。
先看倒计时。
四十七秒。
通过就是通过。
没必要为了证明“蓝牙还能不能连”。
现在重新试。
——
主持老师在前面也看到了各机状态。
第二题结束后。
屏幕统一锁定。
“好了。”
“这一轮结束。”
“没通过的也不用紧张。”
“本来就是协作边界演示。”
“大家应该也发现了。”
“有搭档不等于搭档必须一直在。”
“现场的人还是得自己做最后判断。”
苏晚晴听见这句。
莫名觉得很贴。
——
工作人员允许重新拿手机以后。
她才检查设备。
蓝牙重新打开。
耳机这次正常连上。
没有继续断。
更像一次普通连接故障。
具体为什么。
不知道。
可能是耳机。
可能是系统。
可能是临时连接问题。
没有证据证明和几十公里距离有关。
更和玉佩没关系。
所以她没有往机制记录里塞因果。
只发给林辰:
【第二题过了。】
林辰几乎秒回:
【蓝牙刚才怎么断了?】
【原因未知。】
【我重连一次失败,就没继续。】
【后来结束后恢复正常。】
【身体?】
【正常。】
【玉佩常温。】
林辰:
【那就先当普通设备故障记。】
【嗯。】
——
他随后问:
【第二题难吗?】
【比第一题复杂。】
【你自己拆的?】
【嗯。】
【怎么拆?】
苏晚晴把自己的五行草稿概括发过去。
输入。
过滤。
连续状态。
结算。
输出。
林辰看完。
隔了好一会儿。
【这不是我以前教你的那套吗?】
苏晚晴:
【不然呢?】
【突然学会高级算法?】
林辰:
【我有点感动。】
【你先别。】
【我下标还错了一次。】
【那更像我教的了。】
苏晚晴:“……”
——
说明会散场时。
之前负责基础组的老师从后排过来。
正好看见她收东西。
“林辰。”
“老师。”
“第二题你讨论通道中途断了?”
苏晚晴一怔。
原来教师端能看到协作连接状态。
“嗯。”
“尝试重连一次没成功。”
“后面我自己做了。”
老师点头。
“处理得还行。”
“第一题你有搭档提醒限制。”
“第二题自己也没乱。”
“代码不算特别快。”
“但检查比较稳。”
还是那个评价。
稳。
不是特别强。
不是天赋惊人。
只是遇到变化以后。
没散。
——
老师又问:
“你基础组训练以后想往程序训练队试试吗?”
苏晚晴没有回答“想”。
因为这不是她能替林辰决定的。
“训练队具体是什么安排?”
“今天晚点会发正式邀请。”
老师说。
“有基础选拔。”
“每周固定训练。”
“不是进了就不能退。”
“你先看规则。”
“有兴趣再确认。”
“好。”
苏晚晴点头。
走出机房没多久。
林辰的学校账号。
收到一条新通知。
【新生程序训练队邀请】