[Buổi 19][Con trỏ][Lab] Bài 2: Dynamic Array Lifecycle


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Dynamic Array Lifecycle

Bối cảnh

Một cảm biến gửi số lượng mẫu chỉ biết lúc chương trình chạy. Bạn cần cấp phát đúng n phần tử rồi tính tổng.

Mục tiêu chính là vòng đời allocate → use → release.

Yêu cầu

  1. Đọc n.
  2. Cấp phát long long* a = new long long[n].
  3. Đọc n phần tử, tính tổng.
  4. Giải phóng bằng delete[] a và đặt pointer về nullptr.
  5. In tổng.

Yêu cầu tổ chức code

Bắt buộc dùng new[]delete[] trong lời giải.

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 số nếu n>0.

Output

Một số nguyên là tổng.

Ràng buộc

0 ≤ n ≤ 5000, |a[i]| ≤ 10^9.

Ví dụ 1

Input

5
1 2 3 4 5

Output

15

Giải thích

Chương trình cấp phát mảng động 5 phần tử rồi đọc 1 2 3 4 5. Tổng khi duyệt vùng nhớ là 15. Sau khi dùng xong, vùng nhớ được giải phóng bằng delete[]; thao tác cleanup không thay đổi kết quả đã tính, nên output là 15.

Ví dụ 2

Input

0

Output

0

Giải thích

Khi n=0, không có phần tử nào cần cộng. Chương trình phải xử lý trường hợp không cần cấp phát hoặc cấp phát an toàn theo contract, tổng khởi tạo vẫn là 0 và output là 0. Đây là case biên quan trọng của lifecycle.

Thông tin học tập

  • Module: M06
  • Buổi: B19
  • Loại bài: LAB
  • Độ khó: Easy
  • Concepts: dynamic arrays, new[], delete[], traversal, sum
  • Giới hạn kiến thức: B01-B19
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo