洛谷 P1165 日志分析
2024-10-04 01:51:52
题目描述
M 海运公司最近要对旗下仓库的货物进出情况进行统计。目前他们所拥有的唯一记录就是一个记录集装箱进出情况的日志。该日志记录了两类操作:第一类操作为集装箱入库操作,以及该次入库的集装箱重量;第二类操作为集装箱的出库操作。这些记录都严格按时间顺序排列。集装箱入库和出库的规则为先进后出,即每次出库操作出库的集装箱为当前在仓库里所有集装箱中最晚入库的集装箱。
出于分析目的,分析人员在日志中随机插入了若干第三类操作――查询操作。分析日志时,每遇到一次查询操作,都要报告出当前仓库中最大集装箱的重量。
输入输出格式
输入格式:
包含N+1 行:
第一行为1 个正整数N,对应于日志内所含操作的总数。
接下来的N 行,分别属于以下三种格式之一:
格式1: 0 X //一次集装箱入库操作,正整数X表示该次入库的集装箱的重量
格式2: 1 //一次集装箱出库操作,(就当时而言)最后入库的集装箱出库
格式3: 2 //一次查询操作,要求分析程序输出当前仓库内最大集装箱的重量
当仓库为空时你应该忽略出库操作,当仓库为空查询时你应该输出0。
输出格式:
输出行数等于日志中查询操作的次数。每行为一个正整数,表示查询结果。
输入输出样例
输入样例#1:
13
0 1
0 2
2
0 4
0 2
2
1
2
1
1
2
1
2
输出样例#1:
2
4
4
1
0
说明
对于20%的数据,有N≤10;
对于40%的数据,有N≤1000;
对于100%的数据,有N≤200000,X≤10^8。
模拟栈
操作1 :插入一个数,因为栈是先进后出,所以栈顶只需存储最大值即可,因为2操作询问的只是最大值,小于栈顶的是不会被访问的,所以插入也没用。
操作2:直接--top。
操作3:因为栈顶就是最大值,直接输出。
#include <algorithm>
#include <ctype.h>
#include <cstring>
#include <cstdio>
#include <queue>
#define N 400500 inline void read(int &x)
{
register char ch=getchar();
for(x=;!isdigit(ch);ch=getchar());
for(;isdigit(ch);ch=getchar()) x=x*+ch-'';
}
int maxn,a[N],n,stack[N],top;
int max(int a,int b) {return a>b?a:b;}
int main()
{
read(n);
for(int opt,x;n--;)
{
read(opt);
if(!opt)
{
read(x);
stack[++top]=x;
stack[top]=max(stack[top],stack[top-]);
}
else if(opt==)
{
if(!top) continue;
top--;
}
else
{
if(!top) {printf("0\n");continue;}
printf("%d\n",stack[top]);
}
}
return ;
}
最新文章
- JNI ReferenceTable overflow
- Swift3.0语言教程使用字符串创建和初始化字符串
- 【支付专区】之对字符串数据进行Base64位加密,解密
- iOS开发笔记13:顶部标签式导航栏及下拉分类菜单
- Java集合的线程安全用法
- checkbox 选中个数
- ios技术面试题
- php新特性--持续更新
- 用Django搭建个人博客—(1)
- jQuery简介以及jQuery选择器
- ops
- 几个STL算法:includes,set_difference、set_intersection、set_symmetric_difference、set_union, pre_permutation, next_permutation
- DevExpress控件使用之RichEditControl的使用
- Linux 下搭建www服务器
- CSS学习笔记day1
- 小强的HTML5移动开发之路(19)——HTML5 Local Storage(本地存储)
- File文件的读写操作RandomAccessFile类
- C#找不到ConfigurationManager类
- 极致21点开发DAY4
- eclipse 中git无法https下载提交代码
热门文章
- Deques and Randomized Queues
- hdu-1181
- 3.4-3.6 依据业务需求分析HBase的表设计
- table对象
- Job for mysqld.service failed because the control process exited with error code. See ";systemctl status mysqld.service"; and ";journalctl -xe"; for details.
- hrbust1444 逃脱 【BFS】
- OPENGL2_基本框架
- [Xcode 实际操作]一、博主领进门-(5)检测运行中的模拟器在各个方向上的切换
- IT兄弟连 JavaWeb教程 JSP动作指令
- 【OpenJ_Bailian - 4005】拼点游戏(贪心)