C6-02 · Đầu, cuối và xen kẽ

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Cho một dãy gồm ~n~ số nguyên (~n \ge 3~). Chỉ dùng lát cắt ds[a:b], ds[a:b:k], hãy in:

  1. ba phần tử đầu dãy;
  2. ba phần tử cuối dãy (giữ nguyên thứ tự trong dãy);
  3. các phần tử ở chỉ số chẵn 0, 2, 4, … (tức phần tử thứ 1, 3, 5, … khi đếm từ 1).

Mỗi phần in trên một dòng.

Dữ liệu vào

  • Dòng 1: số nguyên ~n~.
  • Dòng 2: ~n~ số nguyên ~a_0, a_1, \ldots, a_{n-1}~ (đánh chỉ số từ 0 như Python), cách nhau một dấu cách.

Kết quả

Ba dòng, các số trên mỗi dòng cách nhau một dấu cách:

  • Dòng 1: ~a_0~ ~a_1~ ~a_2~.
  • Dòng 2: ~a_{n-3}~ ~a_{n-2}~ ~a_{n-1}~.
  • Dòng 3: ~a_0~ ~a_2~ ~a_4~ … (mọi phần tử có chỉ số chẵn).

Ràng buộc

  • ~3 \le n \le 100~.
  • ~-10^9 \le a_i \le 10^9~.

Ví dụ

Dữ liệu vào:

7
31 33 29 35 34 30 32

Kết quả:

31 33 29
34 30 32
31 29 34 32

Giải thích ví dụ

Chỉ số 0 1 2 3 4 5 6
Giá trị 31 33 29 35 34 30 32
  • ds[:3] lấy chỉ số 0, 1, 2 → 31 33 29.
  • ds[-3:] lấy chỉ số 4, 5, 6 → 34 30 32.
  • ds[::2] lấy chỉ số 0, 2, 4, 6 → 31 29 34 32. Với ~n = 7~ (lẻ) phần tử cuối cũng có chỉ số chẵn.

Lưu ý

  • Lát cắt "lấy đầu, bỏ cuối": ds[-3:-1] chỉ có hai phần tử; ba phần tử cuối là ds[-3:].
  • "Chỉ số chẵn" tính từ 0: ds[::2], không phải ds[1::2].
  • Khi ~n = 3~, dòng 1 và dòng 2 đều là cả dãy; khi ~n \le 5~ ba phần tử đầu và ba phần tử cuối chồng lên nhau — vẫn in đủ cả hai.
  • Hệ thống chỉ kiểm kết quả. Yêu cầu "chỉ dùng lát cắt" do giảng viên kiểm khi xem bài.

Nguồn trong sách: Bài C6-02, mục 6.12, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (*)


Đang tải...