Skip to main content
📜 WAYPOINT LESSON

The Debugging Method — Reproduce, Isolate, Verify

⭐⭐ intermediate⏳ 20 min read📍 Lesson 115 of 281

Contest debugging is a three-step loop; the smallest failing test is the whole game.

Ba bước

1. Tái lập nhỏ nhất. Thu nhỏ test xuống nhỏ nhất còn sai. Test nhỏ còn sai → logic sai; chỉ test lớn sai → khả năng cao là phức tạp/ tràn số.

2. Cô lập giả thuyết. Liệt kê 2–3 nghi phạm theo xác suất: ranh giới vòng lặp, khởi tạo, so sánh sai dấu, tràn int, modulo âm. In giá trị trung gian trên test nhỏ (debug output được phép — chấm chỉ nhìn stdout CUỐI cùng... thận trọng: một số judge cấm; dùng biến tạm và xóa trước khi nộp).

3. Kiểm chứng bản vá. Sau khi sửa, chạy lại TOÀN BỘ test ví dụ và tự dựng thêm test biên: n = 1, giá trị lớn nhất, sắp xếp ngược.

Nhận diện nhanh theo triệu chứng

| Triệu chứng | Nghi phạm chính | |---|---| | WA chỉ test lớn | tràn số, int thay long long | | WA test nhỏ | off-by-one, sai điều kiện | | TLE vừa phải | thuật toán đúng, phức tạp sai | | RE | mảng ngoài biên, đệ quy quá sâu | | WA số âm | modulo âm, init 0 cho best |

Điểm mấu chốt: thu nhỏ test trước; sửa rồi phải chạy lại toàn bộ, không chỉ test vừa fail.