第36章
5月3日12:00 PM,紐約。
決賽在谷歌總部舉行,房間寬敞亮堂,每個桌子三面都環着隔板,保證選手們有自己獨立的編程空間。過道間隙很大,如果坐得煩了還可以站起來走一走。
選手們陸續背着包進來,找到自己的位置坐下,登陸賬戶,點開模拟題來熟悉設備和語言環境。
阿歷克斯進場的時候正好經過程逍,他瞥了一眼板子右上角貼着的名牌:“程,你換ID了?”
“向你們學習。”程逍随口說道,“不用真名了。”
阿歷克斯托起下巴,思索着名牌上“Y!”的意思:“這是什麽,Y的階乘?還是非Y?”
程逍搖頭否定,“你就先當是(WH)Y NOT吧。”
伊桑的位置正對蔣莊,他倆自打坐下就覺得相見恨晚。
蔣莊點開終端更換主題,原本的黑白文字頓時變得花裏胡哨,他沒做模拟題,而是起身靠在隔板上和伊桑聊天。
伊桑脫了鞋,蹲在椅子上調機子,蔣莊稱贊:“鍵盤不錯。”
伊桑是自己帶的鍵盤,于是随手敲了兩下給蔣莊展示:“特別有感覺!不然我回頭送你一個?”
喬納森拎着水瓶:“借過。”
蔣莊心說旁邊足夠過兩個你了,但這種人一貫如此,置氣的話早晚得把自己氣死,于是他在腦子裏狂扁了對方一通,然後禮貌地讓開。
喬納森仿佛不滿足,看着伊桑的鍵盤:“前兩天分布賽發的獎品也有,是他們自己開發的人體工程學鍵盤,對手腕特別好,晚點借你玩玩?”
伊桑一張娃娃臉笑得很甜:“不用啦,我還年輕,手腕手指都挺靈活,你自己留着玩吧。”
喬納森盯着他看了一會,繼續往座位走去。伊桑在他身後狠狠地翻了個白眼,蔣莊終于忍不住,趴在桌上笑到發抖,卻還記得對着伊桑豎起大拇指。
Advertisement
12:30 PM
計時器閃動了第一下,賽題公布,屏幕上顯示出各位選手的提交進度。
五道題從簡到難,前兩題各28分,後三題各48分,沒有答題順序要求,大家都低頭拿紙筆劃拉着。
比賽實況在YouTube直播,由兩位谷歌資深的軟件工程師進行解說。艾達點開決賽名單,“看來我們這次有不少熟悉的面孔。”
摩根試圖念出白俄羅斯選手的名字,但讀到姓氏卡了殼,他自嘲道:“四年了,我還是念不出戈洛的id,他得過三屆冠軍,是我們決賽的常客了。”
“我們還有來自中國的程逍,也是去年的競賽回歸者。”艾達看着屏幕,“诶他是不是換id了?”
摩根下滑屏幕,“去年是叫chengxiao112358,今年換成了Y的階乘。”
“我覺得是why not。”艾達猜測,“這裏更有意思,你看,來自中國的蔣莊叫sleep more,來自perl的伊桑叫eat more,這兩人事先真的沒有商量過嗎?”
摩根笑了起來,“說起來,伊桑進了七次決賽,這卻是第一次來決賽現場。”
“能看出來他很開心。”艾達又依次介紹了剩下的選手,“我有種預感,這次競争會比較激烈。”
直播中不斷有谷歌的團隊負責人來接受采訪,第一位工程師聊了聊自己的項目,不經意間展示着谷歌的閃光點。
摩根向同事致謝,“時間已經過去了二十分鐘,讓我們來看看現在的排名表。”
艾達切換到提交界面,笑了起來:“真遺憾,我們還沒有收到任何提交結果,你猜他們都在幹什麽?”
屋內的攝像機傳回影像,選手們各自選擇了自己的舒服的姿勢,有坐着的、有趴着的,還有蹲着的。大家基本還在紙上打着草稿,只有零星幾個人開始敲鍵盤。
摩根猜測:“看起來大家應該是在想前面的幾道題,理清思路,其實挺好的,不用慌着解題。”
艾達點頭,“不如我們先看看各位選手,我們晚點再刷新成績表?”
屋子裏的攝像師走來走去,不時對着選手拍一陣特寫。
“戈洛更新了個人宣言,用最後一分鐘來寫最後一題。”摩根念道,“他比較喜歡有壓力的環境啊。”
攝像機移動到伊桑身旁,少年抱着膝蓋蹲在椅子上,把筆帽抵在嘴唇上,全神貫注地盯着屏幕,草稿紙上已經是密密麻麻的邏輯圖。
艾達點開伊桑的資料卡:“真沒想到,我們的小選手還是個歌劇演唱愛好者。”
鏡頭轉向程逍,他垂着眼看草稿紙,不停在紙上勾畫着,攝像師像是十分偏愛這位中國男生,拉近給了特寫,拍得睫毛都一清二楚。程逍的精力集中在題目上,對身旁的相機無知無覺。
程逍的資料卡上除了個人基本信息只有一句話,其他經歷、榮譽都空着沒填,摩根回想:“如果我沒記錯,去年ACM程和蔣還有另一位男生得了冠軍。那麽我們來看看有關他的趣事是——雨天從來不帶傘?”
艾達好奇地湊過去:“這還真是趣事。”
1:30 PM
“一小時過去,我們現在再來看看排名表,不知道有沒有什麽變化。”送走第二位接受采訪的工程師,摩根重新打開了排名。
“哇!我們有了一些提交結果。”艾達激動道,“嚴格來說,是五位。”
記錄顯示,戈洛在第40分鐘提交了第一題,程逍第二,在44分鐘整提交,另一位選手跟得很緊,在44分07秒,三人均一次通過了樣本測試。
喬納森進行了兩次結果提交,然而有一次沒通過測試,最終拿到分數是在44分38秒。
高橋俊吉在50分鐘時提交,也拿到了28分。
工程師正逐字逐句給觀衆解釋着出題時的邏輯,只見屏幕上的排名又刷新了。
蔣莊和阿歷克斯先後提交了結果,喬納森似乎是在優化代碼,又提交了一次,結果大型輸入測試沒有通過,排名掉到了最後。
“去年是什麽樣來着?”摩根問工程師。
“每道題都有人在嘗試,但是沒人解出全部的題。”工程師笑道,“差不多是我們想要的結果。”
屏幕切換到競賽的屋子裏,大家的屏幕上都布滿代碼,但個人使用的語言不通,代碼排列也就不同,總之都是一行一行的小字。
高橋俊吉在1小時15分鐘提交了第三題,瞬間沖到了第一名。伊桑等選手跳過第一題直接做的第三題,也排到了前面。
屏幕顯示喬納森嘗試着第四題,提交了兩次,但很遺憾,沒有通過測試。
見選手們屏幕上都已經有了初具雛形的代碼,艾達點開遠程監控,看着伊桑的屏幕,“看起來他還在驗證第三題?正在對比樣本輸出。”
摩根笑了起來,“天哪,他一下注釋掉了整屏的代碼。”
屏幕上五十多行代碼瞬間都變成了注釋,伊桑快速輸入着,很快,代碼又填滿屏幕,他點擊運行,千百組坐标顯示在屏幕上,艾達驚呼:“震撼。”
3:30 PM
“我們今天也很榮幸地請到了東京大學的客座教授松本先生,不知道松本先生能不能給我們展示一下第五題的思路?”摩根向年輕的教授致意。
“這題需要用到概率以及幾何,那麽我們可以看到,它是一個安全系統……”松本先生拿起筆,在智能屏上勾畫着。
距結束只剩一小時時間,艾達再次點開成績板。
程逍在2小時14分27秒提交了第二題,一次通過。
喬納森一共嘗試了第四題七次,終于在2小時17分31秒通過,分數并列第一,但因為提交時間原因,排在了第二名。
其他多名選手也提交了代碼,排名又被刷新。
高橋俊吉在嘗試第五題,然而還沒得出成功的方案。
“您的學生很不錯呢,已經有了76分。”摩根轉向松本先生。
松本看着成績板,輕輕皺起眉頭:“可以切到程的屏幕嗎?我比較好奇。”
艾達嘗試了一下:“他開了全屏模式,暫時不行。”
攝像師及時走到程逍身邊,把鏡頭對準他的雙手。程逍正行雲流水地敲着鍵盤,不帶一點停頓。寫了一會,他把雙手背到腦後,伸展着肩頸,又閉上眼享受了五秒鐘耳機,繼而開始在紙上劃拉着,不時還快速地轉兩下筆。
松本眯眼看向程逍桌上的草稿圖,笑了起來。
果然,3小時12分09秒,程逍提交了第三題,一次通過,以104分的成績排到了第一名。
“Bomb!”艾達驚喜道,“這可是一大步差距!”
“你猜他現在要幹什麽?”摩根問道,“他會繼續做第四五題嗎,只有40分鐘了。”
程逍關了全屏開始測試,終端裏不斷閃着數據。
“您說呢?”艾達猜不出,将問題抛給了松本。
松本只說了一句:“這個選手很穩。”
可惜松本先生并非料事如神,轉眼喬納森就提交了第四題,以20分的優勢超過程逍,上升到第一名。
4:20 PM
艾達和摩根開始挨個鏈接選手的屏幕,查看大家的動向。
選手們或寫或查,每個人的眼睛都直勾勾地盯着屏幕,如果不是手在動,簡直和雕像沒什麽兩樣。
喬納森、戈洛并列124分。
程逍依舊是104分。
高橋俊吉、蔣莊等選手解出了兩題,共得76分。
4:25 PM
程逍飛速敲着代碼,面無表情。
伊桑叼着筆,瞪眼看屏幕,不斷改着變量。
高橋俊吉握緊雙手,深呼吸着。
4:28 PM
比賽還剩兩分鐘,喬納森擡頭看了看排名,打開新文件,悠哉地敲起了鍵盤。
“致觀衆:SegOJ,id:JonathanTheGenius,歡迎來戰。”
直播間,艾達咳嗽了起來,她向摩根致歉,轉過身,在鏡頭看不見的地方翻了個白眼。
4:30 PM
許多選手選擇了在最後一秒提交,倒計時歸零,比賽結束。
高橋俊吉解出了第五題,上升到124分。
程逍提交的第五題并沒有通過,保持104分,位居第四。
伊桑通過第五題的測試,現在一共拿到96分。
喬納森走向程逍,喝了口水,問道:“怎麽樣,有問題嗎?”
“沒,很好。”程逍正在收拾桌子,頭都沒擡,“謝謝關心。”
喬納森開始到處轉悠,然而大家都聚在一起讨論算法,并沒有人關注他。
伊桑看着程逍,悄悄拽了一下蔣莊:“程是不是不開心?”
蔣莊輕笑了一聲,瞥向遠處的喬納森:“明天最終輪測試你就知道了,我們逍神是那麽容易被嘲諷的?”
往年都是提交結果後立刻出最終測試,但今年谷歌決定增多數據,導致一臺電腦的時間和容量根本不夠,因此,他們要用幾百臺機器交互測試,保證代碼覆蓋所有測試情況,并且在各種系統裏都能正常運行。
程逍從後面拍了他倆一下:“eat more先生、sleep more先生,晚上萊利請客吃燒烤,去不?”
作者有話說
過了樣本測試又怎麽樣,最終測試且看逍神吊打你:)
改了點bug,現在排名如下。
戈洛:一28+三48+五48=128
喬納森:一28+三48+四48=128
高橋俊吉:一28+三48+五48=128
程逍:一28+二28+三48=108
伊桑:三48+五48=96