#420(div2)C. Okabe and Boxes

题意:两个操作,add:往栈里push一个数。remove。移除栈顶元素。现在要求将数字按1-n顺序移除。问你需要改动多少次后满足。改动:当遇到不满足时,可以将栈内元素排序。

思路:模拟下

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 stack<int >s;
 5 
 6 int main(){
 7     int n;
 8     int x;
 9     char a[10];
10     scanf("%d",&n);
11     int aa=1,sum=0;;
12     for(int i=1;i<=2*n;i++){
13         scanf("%s",a);
14         if(a[0]=='a'){
15             scanf("%d",&x);
16             s.push(x);
17         }
18         else {
19             if(s.empty()) ;
20             else if(s.top()==aa) s.pop();
21             else {
22                 sum++;
23                 while(!s.empty()) s.pop();
24             }
25             aa++;
26         }
27     }
28     cout<<sum<<endl;
29 }
原文地址:https://www.cnblogs.com/hhxj/p/7079341.html