003. 重要的决定 算法青春
比赛开始,oj页面在持续不断地 f5刷新中突然跳出了题目列表。
彭峰瞥见隔壁肖乐的队伍正麻利地拆掉试题册的订书钉,他立刻有样学样,三两下將试题册拆成散页。
郭晓川瞬间明白过来,解释道:“acm比赛是三人共用一台电脑,没法並行读题,所以通常会发三份纸质题册。校赛大概为了控制成本,每个队只发一份。拆开才能让每个人都分到题目同时看。”
“这道计算题看起来能做!”陈小燕很快指著一道题说,“和 a+b差不多,就是把几个数按规则算算。”
她立刻坐到电脑前敲代码,十分钟后代码成型,点击提交却弹出刺眼的“wrong answer”(wa,答案错误)。
彭峰的指尖划过屏幕上那行无情的文字:“回答错误……会不会是格式错了?题目说有多组输入,你看咱们写的是『输入一个,算一个,输出一个』,黑框里会是这样。”他打开了 windows的记事本,把运行的结果粘贴进去:
```
输入1
输出1
输入2
输出2
……
```
“但是样例看起来输入和输出是分开的”,他在 windows记事本里继续敲:
```
输入1
输入2
……
输出1
输出2
……
```
“是不是得先把答案存起来,最后再一起输出?”彭峰看向郭晓川。
郭晓川也没遇到过这样的情况,皱著眉点头道:“试试看吧。”
陈小燕立刻修改代码,开了个数组存计算结果,再次提交却换来“runtime error”(re,运行时错误)的报错。
“逻辑不复杂啊,怎么会运行出错?”她皱著眉反覆拖动滚动条检查代码,循环条件改了又改,数组大小调了又调,提交记录里 wa、re与“time limit exceeded”(tle,运行超时)交替出现。
“这样也过不了吗?”有力使不出的感觉让她语带焦躁。
郭晓川翻到另一道题:“我试试这个斐波那契数列,初中就学过,每个数是前两个数之和,1、1、2、3、5……”语气带著找到熟悉领域的兴奋,“题目就多了个对 1000000007取模,用『%』符號就行。”
“这题不是多组测试数据,和我在 poj做过的几个题差不多,起码能排除格式问题。”郭晓川边说著边开始敲代码。几行循环写完,样例测试无误,提交后却也弹出“tle”。
“哦!这个题的 n很大,代码跑太久超过 1秒时限了!”郭晓川恍然大悟,思考片刻后,“那也有办法,我高中时候用特徵根方程解过通项公式,直接代公式不用循环,应该能快。”
acm是“开卷”比赛,允许带纸质资料,他立刻翻开 c语言课本,手指迅速划过页面,查找开根號等操作的语法,很快调整好代码。
“人生第一次比赛中的 ac(accepted)要来了?”郭晓川点提交时,心跳忍不住加速,可屏幕跳出的还是“wrong answer”。
“怎么用了这么 nb的公式也会错?”彭峰急得直抓头髮。
机房里键盘声此起彼伏,时不时有人欢呼“过了!”
“他们三个气球了!”彭峰指著肖乐队伍的方向。
肖乐察觉郭晓川的目光,嘴角勾起一抹得意的笑。
陈小燕那边还在和计算题较劲,调整数组大小后终於摆脱了 re的报错,却又陷入 wa的循环。她盯著代码逐行检查,每个步骤的逻辑都没问题,可提交结果始终是错误,烦躁一点点累积,越检查越觉得无从下手,手指无意识地绞著衣角。
郭晓川陷在斐波那契数列问题,望著草稿纸百思不得其解,眉头越皱越紧。
彭峰抓了一把益达塞到嘴里大嚼特嚼,把题册翻得哗啦响,试图找到一个自己能够搞定的题目。
时间在一次次提交、刷新、报错中悄悄溜走,页面上显示 0题的队伍越来越少,最后只剩下寥寥四五个,他们的队名在其中格外刺眼,三人心里都沉甸甸的,说不出的憋闷。
突然广播又传来声音:“比赛已进行 4小时,接下来进入最后一小时封榜阶段,oj的 rank(排名)页面將不再实时更新。”
这个通知对他们而言已经无关紧要。对郭晓川的队伍来说,第一次比赛能做出一道题就算胜利。
旁边肖乐的队伍也在抓耳挠腮捶胸顿足,没了刚才的意气风发,三个人围著屏幕爭论不休,他们的气球数量停留在 3个已经很久了。
郭晓川决定先去上个厕所,让自己乱成浆糊的脑子清醒一下。
过道上,一支队伍旁边立著的8个气球,格外扎眼。
屏幕前的男生正全神贯注地盯著代码界面,深灰高领毛衣的领口妥帖地立著。他的两个队友没有各自研究题册,只是安静地坐在旁边——他在单挑比赛?
郭晓川经过时,他恰好微微抬头。四目交会的瞬间,空气仿佛凝滯了半秒,那双透过镜片的眼睛里没有多余的情绪,却藏著一丝不易察觉的审视。
看身形和脸上的青涩,不像高年级学生,但那专注到旁若无人的样子,让 8个气球的成绩显得十分合理。
郭晓川还没回过神,对方已重新沉回屏幕的代码世界。
返回座位,郭晓川又开始思索通项公式是否哪里错了,而那个选手的 8个气球仍在脑海縈绕。
直到彭峰留意到题目描述的数据范围—— n <= 100000000,“咱们试试输入个 100000000?”
当输入100000000之后,得到了一个奇怪的数字,三个人面面相覷,更加困惑,“这是什么鬼”彭峰挠著头,“难道编译器出问题了?要不要问问管理员?”
“编译器肯定不会错。”郭晓川摇摇头,把笔扔在桌上,满是无奈,“大概是有啥还没学吧,这题解不出来了。”
陈小燕负责的题成了最后的希望,她把座位让给郭晓川:“我实在想不出来有啥问题了,要不你试试?”
郭晓川接手键盘,按照自己的思路重写输入输出逻辑,屏幕上的光標隨著敲击跳跃,提交后的状態依旧在 wa和 re之间摇摆,像一场看不到尽头的噩梦。
比赛时间缓缓靠近结束,彭峰焦躁地站起来来回踱步,陈小燕的眼眶悄悄红了。而郭晓川无暇顾及队友的状態,盯著满是代码的屏幕,大脑一片空白。
郭晓川最后一次漫无目的的代码调整尚未提交,页面已跳转为结束状態,机房里瞬间炸开锅,欢呼雀跃与懊恼嘆息交织成一片。
广播里再次传来尹南巍的声音:“比赛已结束,大家现在去民主楼小礼堂参加闭幕式暨颁奖典礼。”
“民主楼还有礼堂?”郭晓川小声问彭峰。
“都来半年了不知道民主楼小礼堂?跟哥走!”彭峰拍了拍他的肩膀。
“我还有点事,先回了。”陈小燕抓起书包快步离开,郭晓川和彭峰也不知说什么,只能望著她快速消失在离开机房的人群中。
小礼堂比普通教室稍宽些,软包的座位相对三教的翻板木椅要舒服不少。参赛选手已经散了大半,留下的多半对拿奖比较有信心。
郭晓川与彭峰刚坐定,肖乐就坐在了旁边。“陈小燕呢?”故作漫不经心地问。
“找男朋友去了唄。”彭峰打趣道。
本章未完,点击下一页继续阅读。(1 / 2)