文章
26
粉丝
0
获赞
82
访问
2.8k
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n; cin >> n;
stack<int> stk;
vector<pair<string, int>> vc;
int start = 1;
bool flag = true;
for(int i = 0; i < n; i ++)
{
int x; cin >> x;
while(stk.empty() || stk.top() != x)
{
if(start > n){flag = false; break;} //只有超过nflag才变false喵
stk.push(start);
vc.push_back({"PUSH", start});
start ++;
}
if(flag){
int ele = stk.top(); stk.pop();
vc.push_back({"POP", ele}); //这里就是确保如果flag是true且跳出了上面那个while条件,那么才可以有POP操作
}
if(!flag){break;}
}
if(!flag) cout << "NO";
if(flag)
{
for(auto ele : vc)
{
cout << ele.first << " ";
cout << ele.second << '\n';
}
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发