栈是一种数据结构。现在你要支持几种操作:
-
push x
,将 x� 这个元素放到栈顶。 -
pop
,表示将栈顶的元素删除。 -
query k
,询问从栈顶往下数第 k� 个元素是多少。
输入格式
第一行一个整数 m�,表示操作个数。
接下来 m� 行,每行一个上面所述的操作。
输出格式
输出若干行,对于每个查询操作,输出答案。
样例输入
10
push 1
push 2
query 1
query 2
push 3
query 1
pop
query 1
push 4
query 1
样例输出
2
1
3
2
4
数据规模
对于 100%100% 的数据,保证 1≤m≤1051≤�≤105。
对于 push
操作,保证 1≤x≤1091≤�≤109。
对于 pop
操作,保证栈非空。
对于 query
操作,保证 k≥1�≥1 且 k� 不超过栈里面的元素个数。
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int Stack[N], top = 0;
char tmp[6];
int main(){
int m;
scanf("%d", &m);
while(m--){
scanf("%s", tmp);
if(tmp[2] == 's')
scanf("%d", &Stack[++top]);
else if(tmp[0] == 'q'){
int k;
scanf("%d", &k);
printf("%d\n", Stack[top+1-k]);
}
else
--top;
}
return 0;
}