[Buổi 22][Củng cố bộ nhớ & chuỗi][ADV] Bài 1: Danh sách chuỗi co giãn thủ công


LÀM BÀI

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

Author:
Problem types
Allowed languages
C++

Danh sách chuỗi co giãn thủ công

Bối cảnh

Một danh sách chuỗi raw bắt đầu rỗng. Mỗi lần nhận record mới, nếu đầy thì capacity tăng gấp đôi bằng cách tự reallocate.

Đây là bài ADV mô phỏng một phần cách container động quản lý capacity. Không dùng vector cho phần lưu chính.

Yêu cầu

  1. Đọc n rồi n dòng.
  2. Ban đầu capacity=1, size=0, string* a = new string[capacity].
  3. Khi size==capacity, cấp phát mảng mới capacity*2, copy, delete[] mảng cũ, chuyển pointer.
  4. Normalize spaces record rồi thêm vào.
  5. Sau cùng in size capacity, rồi các record.
  6. Cleanup.

Input

Dòng 1 n; n dòng.

Output

Dòng đầu size capacity; sau đó n dòng normalized.

Ràng buộc

0 ≤ n ≤ 1000, tổng chars≤100000.

Ví dụ 1

Input

3
 a 
 b  c 
d

Output

3 4
a
b c
d

Giải thích

Với 3 phần tử, capacity đi 1→2→4 nên dòng đầu là 3 4.

Ví dụ 2

Input

0

Output

0 1

Giải thích

n=0 giữ capacity ban đầu 1 và size 0.

Thông tin học tập

  • Module: M06
  • Buổi: B22
  • Loại bài: ADVANCED
  • Độ khó: Hard
  • Concepts: dynamic string arrays, reallocation, string normalization, ownership
  • Giới hạn kiến thức: B01-B22
  • Time limit: 2 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo