5月 10, 2008

【介紹】ACM - What's Wrong

@
  在之前,我們已經介紹過 ACM 與 Online Judge 的使用方式。但是,你的程式提交結果並不一定就是正解,因此系統會回報你一個 Verdict,讓你知道你的程式結果是否正確,或是發生了什麼錯誤。所以在這裡,讓我們來看看這些解題結果的狀態說明。


Accepted (AC):
  恭喜你!出現這個結果代表你的程式沒有發生錯誤,且執行結果完全正確。

Accepted (P.E.)(Presentation Error):
  同上,出現這個結果代表你的答案是正確的,不過有格式上的錯誤。像是多餘的空白、換行等等。根據官方討論區的說明文件所言,這個結果只適用實際比賽,對於線上裁判系統而言,這只是個警告,不必太過擔心。

Wrong Answer (WA):
  程式成功的執行了,但是你的輸出資料結果是錯誤的。

Runtime Error (RE):
  程式成功編譯,但發生執行期錯誤(非法操作記憶體、除以 0 等等問題)。

Time Limit Exceeded (TL):
  你的程式執行時間太久了。目前 Online Judge 的執行限制時間似乎是 3 秒內,試著改善解題的演算法吧。

Memory Limit Exceeded (ML):
  程式執行的需求記憶體超過系統限制。不過官方文件寫著,假如你確定有這些記憶體需求,可以試著跟管理員聯繫。至於實際狀況如何,我就不得而知了。

Output Limit Exceeded (OL):
  你的程式輸出資料量超過系統限制。通常是無窮迴圈造成的結果(我就曾經如此過,不過狀態寫的是 Time Limit Exceeded,所以這種執行結果真的可能出現嗎?)。

Restricted Function (RF):
  你的原始碼使用到系統不允許使用的函式(例如 fork()、fopen() 等等)。

Compile Error (CE):
  編譯錯誤。由於系統使用的編譯器是 gcc,若是使用不同編譯器可能會有語法上的不同,在提交前要多注意。

Submission Error (SE):
  題號、使用者 ID(新版的 Online Judge 應該不會有此問題)、或是使用的語言未填。

Can't Be Judged (CJ):
  系統沒有該問題的輸出入資料(不確定)。

Access Denied (AD):
  你的網址不允許你提交問題(完全不懂,麻煩知道的人告知我一聲)。

Non Authenticated (NA):
  你的電子郵件無法認證,或是提交工具沒有寄出認證消息。假如你不是 Hacker,請跟管理員聯繫(這應該只有設定"開啟電子郵件接收執行結果"才會出現。實際上我也沒使用過,所以也只能照著文件翻譯)。

Out Of Contest Time (OC):
  這個訊息只有實際比賽會出現,代表超過比賽時間。

Delayed (DL):
  系統忙碌,因此結果會延遲出現。這個時候請不要再一次提交結果。

Judge Disabled:
  系統維修中(不確定)。

Judge Not Ready!:
  因為某些原因,系統剛剛重新啟動。所以 Judge 還沒有載入到系統中。

  以上這些參考自官方討論區的 How to understand the Online Judge answers。不過由於大多數的回報狀態我都沒碰過,因此也不能做完全正確的解說。假如有哪裡解釋錯誤請告知一聲,我立即改正。

0 回覆:

張貼留言