Try   HackMD

體驗 AC 的愉悅

學會了怎麼教程式說話之後,就有能力來解「線上評測系統(Online Judge)」上 Output Only(只需輸出固定的答案)的題目啦!

正好 Kattis 就有一題,馬上來試試吧?

線上評測系統 Online Judge

剛開始學程式,寫出來的程式碼有沒有問題、正不正確,其實自己不容易判斷而且自己家的小孩總是比較偏袒一點,要找人幫忙看也不容易或者要錢,怎麼辦好呢?

這時就該集「免費、不眠不休 24 小時服務、免費、絕對公正不偏袒、免費、以及免費」等種種優點於一身的線上評測系統(簡稱 OJ)登場啦!上述的 Kattis 就是一種 OJ 喔。

對 OJ 提供的題目寫好程式碼,上傳之後,OJ 就會幫你批改,並告訴你結果。過程完全自動,不用等很久,不用對方醒著且有空,也不會有人工粗心犯錯的問題。

那麼,要使用 OJ 的服務該先做什麼呢?

註冊

通常只要註冊一個帳號,馬上就可以使用了。為此可能需要 E-Mail,視 OJ 而定 Facebook、Google、Twitter、Github 的帳號可能也都可以。事不宜遲,馬上註冊一個吧!

閒談

Kattis 是有國家和大學間總積分排行的,且計分公式上不論分數再低,也不會拖累整體分數,影響一定是正向的,所以可以放心編輯個人資料,在國籍填個你想幫加油的國家。

注意因為無法拖累整體分數,選討厭的國家擺爛其實也是送分行為喔!

尋找目標題目

題目由以下連結即可找到題號,除了翻譯外,也能找到原題目的連結。

Kattis hello - Hello World!

https://hackmd.io/@sa072686/Kattis_hello

撰寫程式碼

依據上一篇提供的 Hello Master! 範例,將輸出的內容做適當的修改,即可應對此題要求。

上傳 Submit

注意

寫好的程式碼,請先在自己的 IDE 上執行,確認語法沒有錯、執行結果經人工比對無誤,再上傳請 OJ 幫你做二次驗證。這是基本的禮儀,同時是對自己的程式碼負責的態度。

將寫好且檢查過的程式碼上傳,然後靜候結果。

小訣竅

​​​​口訣「CTRL+AC,上傳就會 AC」

CTRL+A 全選程式碼,除了節省拖曳的時間,還能確保不會漏字;
CTRL+C 可以直接複製已選取的程式碼。

CTRL+AC 又吉利又好記。

如果得到 Accepted(簡稱 AC),恭喜你解出了第一道題目!表示你寫的程式碼有達成本題的要求,順利通過測試啦!

沒意外的話 Ranking 應該會上升個幾千到幾萬名。看積分上升、排名上升是件蠻舒服的事。

各種錯誤 Errors

如果出錯,不要灰心,再詳細檢查一下、修改一下,然後再挑戰一次吧!

殘機是無限的。

如果得到 Wrong Answer(簡稱 WA),檢查一下有沒有多印或少印一個字,或者哪個字打錯。系統檢測是逐字比對的,必須和答案完全相同,就連多或少個空白、大小寫不一致都不行的喔!

提示

複製貼上其實是最安全、最不易看錯或打錯字的方式。

如果得到 Compile Error(簡稱 CE),檢查一下有沒有選錯語言,例如選到長得和 C++ 很像的 C 語言之類的。

注意

如果不是選錯語言,那通常代表沒先在自己電腦上確認能跑就上傳,是件可恥的事。

如果自己電腦上真的能跑就另當別論。

現階段應該不會出現其它種類的錯誤。如果沒有拿到 AC 就修改一下、檢查沒問題再挑戰一次,直到 AC 為止。

注意

請不要沒改就再次上傳,這麼做只是單純浪費資源,是個可恥的行為。原則上錯的程式碼不會因為多試幾次就變成對的。

如果只是想再看一次結果,可以找上傳記錄來看。

體驗完人生第一次 AC 的快樂、了解 OJ 基本使用方式後,就可以到下一篇,學更多語法、讓程式做更多不同的事啦。

Loading embed note

tags: 競程:初章, 競程