#CCBCHBAHAI0000096. Final Array Clinic - tìm và sửa 12 lỗi
Final Array Clinic - tìm và sửa 12 lỗi
Final Array Clinic - tìm và sửa 12 lỗi
Nguồn: Phước Hưng OJ
Phiên bản: Phước Hưng OJ Extended
Đề bài
Bài clinic tổng hợp này mô hình hóa 12 lỗi mảng thường gặp thành 12 đại lượng chẩn đoán phải tính đúng.
Cho mảng tĩnh có sức chứa và kích thước logic :
cùng số nguyên và vị trí chèn 0-based với .
Hãy tính 12 kết quả sau, theo đúng thứ tự:
- : số lần lặp của vòng duyệt đúng
for (i = 0; i < n; ++i). - : chỉ số hợp lệ cuối cùng.
- : phần tử đầu.
- : phần tử cuối.
- : tổng với accumulator được khởi tạo đúng.
- .
- .
- , hoặc nếu không xuất hiện.
- , hoặc nếu không xuất hiện.
- .
- nếu còn chỗ chèn (), ngược lại .
- Tạo mảng bằng cách chèn tại chỉ số chỉ khi ; nếu , giữ nguyên mảng. Gọi kích thước kết quả là .
Nếu thì
$$b_i=\begin{cases} a_i,&0\le i<p,\\ x,&i=p,\\ a_{i-1},&p<i\le n, \end{cases} \qquad m=n+1.$$Nếu thì và .
Bài này kiểm tra trực tiếp các lỗi: off-by-one, truy cập a[n], nhầm first/last, accumulator chưa khởi tạo, min/max sai, first/last occurrence sai, count sai, capacity sai và shift sai chiều khi chèn.
Input
Dòng đầu chứa , , , . Dòng thứ hai chứa số nguyên .
Output
Dòng 1 in lần lượt . Dòng 2 in . Dòng 3 in phần tử của mảng kết quả .
Subtask
Subtask 1 (20 điểm): , .
Subtask 2 (30 điểm): , .
Subtask 3 (50 điểm): , .
Ví dụ
Input
7 5 2 4
4 1 4 9 2
Output
5 4 4 2 20 1 9 0 2 2 1
6
4 1 4 4 9 2
Giải thích
Có phần tử nên chỉ số cuối là . Giá trị xuất hiện đầu tiên ở chỉ số , cuối cùng ở chỉ số , tổng cộng 2 lần. Vì , có thể chèn thêm tại .