Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C] Stack động — Tự mở rộng dung lượng bằng realloc

    Hãy cài đặt một stack số nguyên dựa trên mảng động, mỗi khi đầy thì gấp đôi dung lượng bằng realloc. Hỗ trợ qqq thao tác:

    • PUSH x — đẩy xxx vào đỉnh.
    • POP — lấy ra và in giá trị đỉnh; nếu rỗng in EMPTY.
    • TOP — in giá trị đỉnh (không lấy ra); nếu rỗng in EMPTY.
    • SIZE — in số phần tử hiện có.

    Khởi tạo dung lượng = 2. Cuối chương trình free mảng nội bộ.

    • Định dạng đầu vào:

      Dòng 1: qqq. qqq dòng tiếp theo, mỗi dòng là một thao tác trong số PUSH x, POP, TOP, SIZE.

    • Ràng buộc đầu vào:

      1≤q≤1051 \le q \le 10^51≤q≤105, ∣x∣≤109|x| \le 10^9∣x∣≤109.

    • Định dạng đầu ra:

      Với mỗi POP, TOP, SIZE in kết quả trên một dòng.

    Ví dụ:

    Đầu vào:

    8
    PUSH 10
    PUSH 20
    PUSH 30
    TOP
    POP
    SIZE
    POP
    POP
    

    Đầu ra:

    30
    30
    2
    20
    10

    Giải thích:

    TOP=30; POP→30 còn [10,20]; SIZE=2; POP→20; POP→10.

    Đang tải editor...