4 solutions
-
3
利用multiset记录和删除出入库车的价值,利用它可以排序的特点记录最大价值
#include <bits/stdc++.h> using namespace std; int main() { stack <int> s; multiset <int> v; int n; cin>>n; while(n--) { int p,x; cin>>p; switch(p) { case 1:cin>>x; s.push(x); v.insert(x); break; case 2:if(!s.empty()) { //出库时在v中找到并删除相应的价值 v.erase(v.find(s.top())); s.pop(); } break; case 3: !s.empty()?cout<<*(--v.end())<<endl:cout<<"-1"<<endl; //判断车库是否为空,没空就输出-1,空的就输出v的最后一个数字(最大) //*(--v.end())为输出v最后一个数字,可以用迭代器替换 break; } } return 0; }
Information
- ID
- 1528
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 73
- Accepted
- 23
- Uploaded By