#CCBCHBAHAI0000051. Sửa vòng lặp duyệt sai cận (Fix an Off-by-One Array Loop)
Sửa vòng lặp duyệt sai cận (Fix an Off-by-One Array Loop)
Sửa vòng lặp duyệt sai cận (Fix an Off-by-One Array Loop)
Nguồn: Phước Hưng OJ
Phiên bản: Phước Hưng OJ Extended
Đề bài
Một mảng có kích thước logic , vì vậy các chỉ số hợp lệ là . Một đoạn chương trình dự định duyệt mảng bằng vòng lặp có dạng for (i = 0; i <= b; ++i) và truy cập ở mỗi lần lặp.
Hãy xác định vòng lặp này có an toàn hay không. Nếu , lần truy cập ngoài mảng đầu tiên xảy ra tại chỉ số . Không được giả định hay dự đoán giá trị của vì truy cập đó nằm ngoài miền hợp lệ.
Input
Một dòng chứa hai số nguyên và , với và .
Output
- Nếu mọi chỉ số từ đến đều hợp lệ, in
SAFE. - Ngược lại, in
OUT_OF_BOUNDS x, trong đó là chỉ số không hợp lệ đầu tiên.
Subtask
Subtask 1 (20 điểm): , .
Subtask 2 (30 điểm): , .
Subtask 3 (50 điểm): , .
Ví dụ
Input
5 5
Output
OUT_OF_BOUNDS 5
Giải thích
Với , các chỉ số hợp lệ chỉ là . Vòng lặp dùng điều kiện nên sau khi xử lý , nó còn thực hiện một lần với . Chỉ số chính là , nằm ngoài mảng. Vì vậy chỉ số lỗi đầu tiên là .