#G. 模拟一个栈

    传统题 1000ms 256MiB

模拟一个栈

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

希蒙学习完栈后非常的兴奋,过几天后他忘记了栈的基本函数是怎么使用的,但是知道用数组模拟栈的原理,现在他将栈的基本原理告诉你😕 ,请你完成一个用数组模拟的栈(如果你记得怎么使用栈也可以直接用函数完成)👀️

输入一个有nn个整数的一维数组,然后对它进行mm次指定操作。

  1. 在数组的末尾添加一个元素。
  2. 删除数组末尾的元素
  3. 输出数组的末尾元素
  4. 查看当前这个数组中存放的元素个数
  5. 清空数组

举例说明

可以用一个变量p表示数组末尾元素的下标

8 4 3 2
      ↑
      p

数组末尾添加一个元素3则数组变则变为

8 4 3 2 3
        ↑
        p

删除数组末尾元素只需要移动下标p即可

8 4 3 2 3
      ↑
      p

输出数组的末尾元素即变量p所指向的数组元素此处输出2

输出数组中元素个数此处输出4

清空数组只需要将变量p移动到第一个元素的前面即可

输入格式

第1行:两个整数 n,mn,m 第2行:nn个整数 a1,a2,a3.....ana_1,a_2,a_3.....a_n,用空格隔开 第3~3+m:每行第一个整数表示 optiopt_i ,表示对应的操作命令,特别的当 optiopt_i 为 1 时需要再输入一个整数 x 。以下是操作命令对应的意思。

  • 1 x 末尾插入一个元素 x
  • 2 删除末尾元素
  • 3 输出末尾元素
  • 4 查看数组长度
  • 5 清空数组

特别的:如果数组为空时(忽略查看和删除操作)

输出格式

对于3 4 操作有对应的输出,每个输出的数字占一行。

样例

输入样例 1

5 3
1 2 3 4 5
1 2
3
4

输出样例 1

2
6

数据范围与提示

对于100%的数据:1n,m,ai,x103,opti[1,5]1 \le n,m,a_i,x \le 10^3 , opt_i ∈[1,5]

暑期集训入营语法编程题目

未参加
状态
已结束
规则
IOI
题目
7
开始于
2023-7-11 21:00
结束于
2023-7-11 23:00
持续时间
2 小时
主持人
参赛人数
109