About Status Codes

Hướng dẫn mã trạng thái trên TMATH

Sau khi nộp bài, bạn có thể theo dõi quá trình chấm và xem kết quả trên trang chi tiết bài nộp. Mỗi mã trạng thái cho biết chương trình đã chạy đúng, gặp lỗi hay vượt giới hạn của đề bài.

Các trạng thái trong quá trình chấm

Mã Tên trạng thái Ý nghĩa
QU Queued Bài nộp đang trong hàng đợi, chờ máy chấm xử lý.
P Processing Máy chấm đang chuẩn bị và xử lý bài nộp.
G Grading Chương trình đang được chấm trên các bộ kiểm thử.
D Completed Quá trình chấm đã hoàn tất. Hãy xem mã kết quả để biết bài nộp có được chấp nhận hay không.

AC — Accepted: Bài làm được chấp nhận

Chương trình vượt qua toàn bộ bộ kiểm thử được chấm và đáp ứng các giới hạn của đề bài.

Nếu bài chỉ được chấm trên bộ kiểm thử sơ bộ (pretests), kết quả AC áp dụng cho bộ kiểm thử đó.

WA — Wrong Answer: Kết quả sai

Chương trình chạy được nhưng kết quả không đáp ứng yêu cầu ở ít nhất một bộ kiểm thử.

Hãy kiểm tra thuật toán, các trường hợp đặc biệt và định dạng đầu ra. Không in thêm lời nhắc nhập dữ liệu hoặc thông tin phục vụ việc kiểm tra lỗi.

IR — Invalid Return: Mã thoát không hợp lệ

Chương trình kết thúc với mã thoát khác 0, báo hiệu quá trình thực thi không hoàn thành bình thường.

Nguyên nhân có thể là ngoại lệ chưa được xử lý hoặc chương trình chủ động trả về mã lỗi. Trạng thái này có thể xuất hiện ở nhiều ngôn ngữ, không chỉ Python hay Java.

Hãy xem thông báo lỗi trong chi tiết bài nộp để xác định nguyên nhân.

RTE — Runtime Error: Lỗi khi chạy

Chương trình gặp lỗi trong quá trình thực thi, chẳng hạn như truy cập bộ nhớ không hợp lệ, chia số nguyên cho 0 hoặc thực hiện thao tác bị máy chấm hạn chế.

Một số thông báo thường gặp:

Thông báo Ý nghĩa và hướng kiểm tra
segmentation fault, bus error Chương trình truy cập bộ nhớ không hợp lệ. Hãy kiểm tra chỉ số mảng, con trỏ và độ sâu đệ quy. Những thông báo này không nhất thiết có nghĩa là chương trình đã dùng hết bộ nhớ.
floating point exception Chương trình thực hiện phép toán không hợp lệ, thường gặp khi chia số nguyên hoặc lấy phần dư với số chia bằng 0.
killed Tiến trình đã bị buộc dừng. Chỉ riêng thông báo này chưa đủ để xác định nguyên nhân; hãy kiểm tra thêm kết quả chấm và thông tin tài nguyên sử dụng.
opening files is not allowed Chương trình mở tệp theo cách không được môi trường chấm cho phép. Hãy đọc dữ liệu từ đầu vào chuẩn và ghi ra đầu ra chuẩn, trừ khi đề bài có hướng dẫn khác.
std::bad_alloc Chương trình C++ không cấp phát được bộ nhớ. Hãy kiểm tra kích thước mảng, các cấu trúc dữ liệu và việc cấp phát bộ nhớ trong vòng lặp.
failed initializing Chương trình không khởi tạo được trong môi trường chấm. Một nguyên nhân thường gặp là các biến toàn cục hoặc biến tĩnh chiếm quá nhiều bộ nhớ ngay khi khởi động.

Ví dụ, khai báo sau chiếm khoảng 381 MiB nếu mỗi phần tử int có kích thước 4 byte:

int arr[10000][10000];

Với bài có giới hạn bộ nhớ 64 MiB, riêng mảng này đã vượt giới hạn.

OLE — Output Limit Exceeded: Vượt giới hạn đầu ra

Chương trình in ra lượng dữ liệu vượt mức máy chấm cho phép.

Hãy kiểm tra vòng lặp vô hạn, các lệnh in thừa và thông tin kiểm tra lỗi chưa được xóa. Giới hạn đầu ra phụ thuộc vào cấu hình chấm.

MLE — Memory Limit Exceeded: Vượt giới hạn bộ nhớ

Chương trình sử dụng nhiều bộ nhớ hơn mức đề bài cho phép.

Hãy kiểm tra kích thước mảng, số phần tử lưu trữ và các lần cấp phát bộ nhớ. Tùy ngôn ngữ và cách chương trình gặp lỗi, vấn đề bộ nhớ cũng có thể được báo dưới dạng IR hoặc RTE.

TLE — Time Limit Exceeded: Vượt giới hạn thời gian

Chương trình không hoàn thành trong thời gian cho phép.

Nguyên nhân thường gặp là thuật toán có độ phức tạp quá lớn hoặc vòng lặp không kết thúc. Hãy đối chiếu thuật toán với giới hạn dữ liệu và kiểm tra các thao tác lặp lại không cần thiết.

CE — Compile Error: Lỗi biên dịch

Mã nguồn không được biên dịch thành công nên chương trình chưa được chạy trên các bộ kiểm thử.

Hãy đọc thông báo của trình biên dịch, kiểm tra cú pháp, thư viện sử dụng và ngôn ngữ đã chọn khi nộp bài.

SC — Short Circuit: Bỏ qua bộ kiểm thử

Bộ kiểm thử không được chạy vì quá trình chấm đã dừng sớm theo cấu hình của bài, chẳng hạn khi một bộ kiểm thử trước đó trong cùng nhóm đã thất bại.

SC không có nghĩa là chương trình chạy đúng trên bộ kiểm thử bị bỏ qua. Hãy xem các bộ kiểm thử đã được chấm để tìm lỗi cần sửa.

AB — Aborted: Đã hủy chấm

Quá trình chấm bài đã bị hủy trước khi hoàn tất.

Hãy kiểm tra thông tin bài nộp. Nếu cần, bạn có thể nộp lại hoặc liên hệ quản trị viên khi trạng thái này xuất hiện bất thường.

IE — Internal Error: Lỗi hệ thống chấm

Máy chấm gặp sự cố và không thể hoàn tất việc đánh giá bài nộp. Nguyên nhân có thể nằm ở cấu hình bài tập, bộ kiểm thử, chương trình kiểm tra kết quả hoặc hệ thống chấm.

Nếu lỗi tiếp tục xuất hiện, hãy báo cho quản trị viên hoặc người ra đề, kèm liên kết bài nộp và thông báo lỗi. Hạn chế nộp lại liên tục trong lúc chờ xử lý.