感觉用手工栈更简单。
思路:
本蒟蒻不会用STL,所以只提供手工写法。
这样本题就变成模拟了。
要注意的是要用 unsigned long long,否则会 WA 两个点。
思路写成注释放代码了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #include<bits/stdc++.h> using namespace std; unsbigned long long b[1145141],t,n,x,jj=1; string a; int main(){ cin>>t; for(int i=1;i<=t;i++){ cin>>n; for(int j=1;j<=n;j++){ cin>>a; if(a=="push"){ cin>>x; b[jj]=x; jj++; } if(a=="pop"){ if(jj>1){ b[jj-1]=0; jj--; } else{ cout<<"Empty"<<'\n'; } } if(a=="query"){ if(jj>1){ cout<<b[jj-1]; } else cout<<"Anguei!"<<'\n'; } if(a=="size"){ cout<<jj-1<<'\n'; } } memset(b,0,sizeof(b)); jj=1; } return 0; }
|
完结撒花!!!