評測與提交說明
這裡整理 AACPOJ 的評測結果代碼、提交限制、自訂測試限制與目前登錄語言的編譯資訊。
評測結果代碼
| 代碼 | 意思 | 說明 |
|---|---|---|
AC | Accepted | 你的程式通過了所有計分測試資料,拿到這次提交能拿到的全部分數。 |
PAC | Partial score | 某個測試資料的輸出已經符合能拿到部分分數的條件,但還不是最佳答案或最高分。這類題目很少見。 |
WA | Wrong Answer | 你的程式有正常執行完成,但輸出的答案不正確。系統有時會附帶回饋,說明可能錯在哪裡。 |
PE | Presentation Error | 答案內容可能接近正確,但空白、換行或格式不符合題目要求。 |
SR | Syntax Restriction | 程式使用了這題尚未允許的語法,請依照題目或單元規定調整寫法。 |
IR | Invalid Return | 程式用不正常的方式結束。例如 C/C++ 在 main 裡面 return 非 0 的值,或 Python 呼叫 sys.exit(1),就會得到這個結果。 |
TLE | Time Limit Exceeded | 程式執行太久,超過題目的時間限制。 |
MLE | Memory Limit Exceeded | 程式使用太多記憶體,超過題目的記憶體限制。 |
OLE | Output Limit Exceeded | 程式印出太多內容,通常是無限迴圈或除錯輸出忘了刪。 |
RE | Runtime Error | 程式執行到一半發生錯誤。C/C++ 常見的是陣列超出範圍、除以零或記憶體使用不當;Python 則是沒有處理的例外(例如 NameError),見下方「用 Python 解題」。 |
CE | Compile Error | 程式無法成功編譯,提交頁會顯示編譯器訊息。 |
IE | Internal Error | 評測系統或題目設定出現問題,通常需要管理員檢查。 |
QU / P / G | Queued / Processing / Grading | 提交正在排隊、準備或評測中,尚未完成。 |
AB | Aborted | 提交被中止,常見於管理員取消或重新評測流程。 |
RE 常見回饋
RE 的詳細訊息會依出錯原因而不同。以下是提交頁常見的回饋類型:
| 回饋訊息 | 常見原因 |
|---|---|
segmentation fault / bus error | 程式碰到不該碰的記憶體。常見原因是陣列超出範圍、指標用錯、遞迴太深,或記憶體用太多。 |
floating point exception | 程式做了不合法的算術運算,例如整數除以零或模零。 |
killed | 程式被系統強制停止。原因可能和資源用太多或程式行為異常有關,但光看這個訊息通常無法確定。 |
{} syscall disallowed | 程式嘗試做 OJ 不允許的系統操作。一般解題很少會遇到;若普通程式碼出現此訊息,請回報給管理員。 |
std::bad_alloc | C++ 配置記憶體失敗,通常代表 vector、陣列等資料開太大。 |
failed initializing | 程式還沒開始執行 main,就因為全域或靜態資料太大而超過記憶體限制。 |
- 同樣是記憶體問題,有時會顯示成
MLE,有時會顯示成RE,並附上segmentation fault或std::bad_alloc。 - 如果 RE 只出現在大測資,優先檢查陣列大小、遞迴深度、指標/索引是否合法,以及是否有除以零。
用 Python 解題
標示開放 Python 3 的題目可以用 Python 作答(CPython 3.10,只能使用標準函式庫)。
| 你看到的結果 | 代表什麼 |
|---|---|
RE+例外名稱(NameError、TypeError、IndexError、ValueError…) | 程式執行到一半出錯、沒有處理就中止了。展開子題可以看到例外名稱。提交頁不顯示行號(隱藏測資不能外洩);到題目頁按「執行範例」(所有登入帳號都能用),或把同一份程式用範例輸入在自己的電腦上跑一次,就會看到完整的錯誤訊息與行號。 |
RE+ValueError,範例就錯 | 多半是讀輸入的方式不對:同一行有好幾個數字時,int(input()) 會失敗,要用 input().split() 拆開再轉整數。 |
CE | Python 沒有編譯,但語法錯誤(少了冒號、縮排不一致、括號沒關)會在執行前就被擋下來,並顯示是第幾行。 |
WA,而且輸出是空的 | 程式沒有印出任何東西。常見原因是主程式根本沒被呼叫,例如把 if __name__ == '__main__': 裡的 '__main__' 改成了別的字。這一行必須原封不動,和檔名無關。 |
TLE | 時間限制不分語言,Python 和 C++ 用同一個時限,而 Python 的迴圈慢很多。輸入量大時改用 sys.stdin 一次讀完;還是超時就代表這題需要更好的演算法,或不適合用 Python。 |
提交與上傳限制
程式碼長度
65,536 characters
一般使用者同時排隊提交數
2
題目時間限制上限
60 s
題目記憶體限制上限
1 GiB
提交原始碼可見性
all-solved
- 正式評測使用每題頁面上標示的時間與記憶體限制;上面的上限是站台可設定的最大值。
- 比賽題目可能另外設定每題提交次數限制;請以比賽與題目頁顯示為準。
- 排隊限制只限制同時等待評測的提交數,不代表每題可提交次數。
自訂測試與範例測試
自訂測試輸入上限
1 MiB
自訂測試頻率
1 / 3 s
範例測試頻率
1 / 1 s
自訂測試編譯上限
10 s CPU
自訂測試執行上限
15 s wall-clock
- 自訂測試與範例測試只是輔助除錯,不會影響正式提交分數。
- 正式評測仍以題目測資與題目的答案規則為準;範例測試通過不代表正式評測會通過。
- 互動題通常不提供自訂測試,因為無法在一般 stdin/stdout 模式模擬完整互動協定。
語言與編譯參數
以下資料從目前 OJ 登錄的語言設定讀取;若某列沒有列出編譯參數,代表該語言設定沒有提供可公開顯示的 compile options。
| ID | 語言 | Runtime | 編譯參數 |
|---|---|---|---|
C |
C |
gcc 11
|
gcc -std=c99 -Wall -DONLINE_JUDGE -O2 -lm -fmax-errors=5 -march=native -s
|
C11 |
C11 |
gcc11 11
|
gcc -std=c11 -Wall -DONLINE_JUDGE -O2 -lm -fmax-errors=5 -march=native -s
|
C17 |
C17 |
gcc17 11
|
gcc -std=c17 -Wall -DONLINE_JUDGE -O2 -lm -fmax-errors=5 -march=native -s
|
CPP03 |
C++03 |
g++ 11
|
g++ -Wall -DONLINE_JUDGE -O2 -lm -fmax-errors=5 -march=native -s
|
CPP11 |
C++11 |
g++11 11
|
g++ -std=c++11 -Wall -DONLINE_JUDGE -O2 -lm -fmax-errors=5 -march=native -s
|
CPP14 |
C++14 |
g++14 11
|
g++ -std=c++14 -Wall -DONLINE_JUDGE -O2 -lm -fmax-errors=5 -march=native -s
|
CPP17 |
C++17 |
g++17 11
|
g++ -std=c++17 -Wall -DONLINE_JUDGE -O2 -lm -fmax-errors=5 -march=native -s
|
CPP20 |
C++20 |
g++20 11
|
g++ -std=c++20 -Wall -DONLINE_JUDGE -O2 -lm -fmax-errors=5 -march=native -s
|