Hướng dẫn ra đề
Mục này dành cho người ra đề (problem setter) trên CTOJ — từ cách viết đề bài rõ ràng đến cấu hình các kiểu chấm đặc biệt. Một bài tập tốt cần đề chính xác, bộ test mạnh, và trình chấm đúng với loại bài.
Các trang trong mục này
- Viết đề bài (Problem Statement) — cấu trúc một đề chuẩn: tóm tắt, input/output, ràng buộc, ví dụ, ký hiệu toán học. Bắt đầu từ đây.
- Đóng gói dữ liệu test (Test Data Package) — đóng gói các file test thành ZIP với manifest
init.yml: cấu trúc, quy ước đặt tên, điểm, và cách tải lên. - Trình chấm tùy chỉnh (Custom Checker) — khi đáp án không duy nhất (nhiều lời giải đúng), viết checker bằng
testlib.hđể chấm linh hoạt. - Bài tương tác (Interactive Problem) — bài mà chương trình thí sinh "hỏi–đáp" với interactor qua nhiều lượt; cách viết interactor và cấu hình.
- Bài gọi hàm (Signature Grader) — thí sinh cài đặt hàm theo chữ ký cho trước thay vì đọc/ghi chuẩn; cách dựng grader.
Liên quan
Cú pháp Markdown và công thức toán dùng khi soạn đề: Hướng dẫn sử dụng Markdown.