[Buổi 15][STL][HW] Bài 1: Cập nhật vector bằng range-for


LÀM BÀI

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

Author:
Problem types
Allowed languages
C++

Cập nhật vector bằng range-for

Bối cảnh

Một cụm cảm biến được hiệu chuẩn lại sau khi kỹ sư phát hiện tất cả phép đo đang lệch cùng một lượng d. Dữ liệu đã được đọc vào vector và phải được chỉnh trực tiếp tại chỗ để các bước xử lý sau sử dụng ngay giá trị mới. Bài toán rất đơn giản về mặt thuật toán, nhưng nó kiểm tra một chi tiết quan trọng của C++: range-for mặc định tạo bản sao của từng phần tử. Nếu viết for (long long x : a), việc cộng d chỉ thay đổi biến tạm x và vector gốc vẫn giữ nguyên. Muốn cập nhật dữ liệu thật, cần duyệt bằng reference long long& x.

Đây là Homework Easy của B15 nên không thêm container hay thuật toán mới. Mục tiêu là hiểu đúng semantics của vector và reference trước khi chuyển sang các bài nhiều representation phức tạp hơn.

Yêu cầu

  1. Đọc vector.
  2. Cộng d vào từng phần tử.
  3. In vector sau cập nhật.

Input

Dòng 1 n; dòng 2 n số; dòng 3 d.

Output

Một dòng n giá trị sau cập nhật.

Ràng buộc

1≤n≤2000, kết quả nằm trong long long.

Ví dụ 1

Input

3
1 2 3
5

Output

6 7 8

Giải thích

Vector ban đầu là 1 2 3d=5. Khi duyệt bằng reference, phần tử thứ nhất đổi từ 1 thành 6, phần tử thứ hai từ 2 thành 7, phần tử cuối từ 3 thành 8. Vì thay đổi được thực hiện trực tiếp trên vector gốc, dòng output sau cùng là 6 7 8.

Ví dụ 2

Input

1
10
-2

Output

8

Giải thích

Vector chỉ có 10d=-2. Reference trỏ trực tiếp đến phần tử duy nhất, nên phép cộng biến 10 thành 8. Không có phần tử nào khác cần xử lý, vì vậy output là 8.

Thông tin học tập

  • Module: M05
  • Buổi: B15
  • Loại bài: HOMEWORK
  • Độ khó: Easy
  • Concepts: vector, range-for reference, update
  • Giới hạn kiến thức: B01-B15
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo