[Buổi 19][Con trỏ][WS] Bài 1: Dynamic Score Storage
Dynamic Score Storage
Bối cảnh
Một lớp học có số lượng điểm chỉ biết khi chạy. Hãy xây bộ thống kê dùng raw dynamic array.
Đây là output chính của B19: vừa đúng dữ liệu, vừa đúng lifecycle.
Yêu cầu
- Đọc n và n điểm nguyên.
- Cấp phát mảng động.
- Tính tổng, min, max và số điểm >=5.
- Nếu n=0, in
EMPTY. - Nếu n>0, in bốn giá trị:
sum min max passCount. - Giải phóng vùng nhớ trước khi kết thúc.
Yêu cầu tổ chức code
Bắt buộc dùng mảng động new[]/delete[].
Online Judge chủ yếu chấm output. Giảng viên có thể review thêm cấu trúc code để xác nhận học viên luyện đúng kỹ năng của buổi.
Input
Dòng 1 n. Dòng 2 n điểm nếu n>0.
Output
EMPTY nếu n=0; ngược lại một dòng sum min max passCount.
Ràng buộc
0 ≤ n ≤ 5000, 0 ≤ score ≤ 10.
Ví dụ 1
Input
5
7 8 4 10 5
Output
34 4 10 4
Giải thích
Mảng điểm động chứa 7 8 4 10 5. Tổng là 34; min là 4; max là 10. Có bốn điểm đạt ngưỡng >=5: 7, 8, 10 và 5; chỉ điểm 4 không đạt. Vì workshop yêu cầu sum min max passCount, output chính xác là 34 4 10 4. Tất cả thống kê phải hoàn thành trước khi delete[] buffer.
Ví dụ 2
Input
0
Output
EMPTY
Giải thích
Input n=0 nghĩa là kho điểm không có phần tử. Không thể lấy min/max hay index hợp lệ, nên theo quy ước của workshop chương trình in EMPTY và không truy cập a[0] hay dereference vùng nhớ không tồn tại.
Thông tin học tập
- Module: M06
- Buổi: B19
- Loại bài: WORKSHOP
- Độ khó: Medium
- Concepts: dynamic arrays, pointers, new[], delete[], sum, min max, counting
- Giới hạn kiến thức: B01-B19
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments