当前位置: 首页 > >

L3-002 特殊堆栈 (30分)

发布时间:



#include
using namespace std;
int n,num;
string s;
int cnt,flag;
vectorans;
vectorbefore;
vector::iterator it;
int main()
{
cin>>n;
while(n--)
{
cin>>s;
if(s=="Pop")
{
if(before.empty())
printf("Invalid
");
else
{
printf("%d
",before.back());
it=lower_bound(ans.begin(),ans.end(),before.back());
ans.erase(it);
before.pop_back();
}
}
else if(s=="Push")
{
cin>>num;
it=lower_bound(ans.begin(),ans.end(),num);
ans.insert(it,num);
before.push_back(num);
}
else if(s=="PeekMedian")
{
if(ans.size()==0)
printf("Invalid
");
else
{
int cur=(ans.size()+1)/2-1;
printf("%d
",ans[cur]);
}
}
else
{
printf("Invalid
");
}
}
return 0;
}



友情链接: