功能强大编辑器

时间限制:1秒 内存限制:128M

题目描述

你要帮助小可创造一个超级数字编辑器!编辑器依旧运行在Linux下,因此你只能通过指令去操控他。指令有五种:
In X 表示在光标左侧插入一个数字
Del 表示删除光标左侧一个数字
Left 表示光标向左移动一下
Right 表示光标向右移动一下
Ask k 表示光标之前的序列为a_1,a_2,a_3a​1​​,a​2​​,a​3​​...a_ka​k​​,输出max_{1\leq i \leq k}S_imax​1≤i≤k​​S​i​​,其中S_i=a_1+a_2+..+a_iS​i​​=a​1​​+a​2​​+..+a​i​​

输入描述

输入第一行包含一个整数Q,表示指令数量。

然后输入Q行,表示Q个指令。

输出描述

对于每个Ask k均输出一行,表示询问结果。

输入样例

  1. 8
  2. In 2
  3. In -1
  4. In 1
  5. Ask 3
  6. Left
  7. Del
  8. Right
  9. Ask 2

输出样例

  1. 2
  2. 3

数据范围

50%的数据,Q不超过1000.

100%的数据,Q不超过1000000,且x不超过1000

参考代码如下

cpp 复制代码
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N=1e6+5;
stack<int> a,b;
int n,x,sum[N],mx[N];
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n;
	memset(mx,-0x3f,sizeof mx);
	while(n--){
		string s;
		cin>>s;
		if(s=="In"){
			cin>>x;
			a.push(x);
			int t=a.size();
			sum[t]=sum[t-1]+x;
			mx[t]=max(mx[t-1],sum[t]);
		}
		if(s=="Del"&&!a.empty()) a.pop();
		if(s=="Left"&&!a.empty()){
			b.push(a.top()); 
			a.pop();
		}
		if(s=="Right"&&!b.empty()){
			x=b.top();
			a.push(x);
			b.pop();
			int t=a.size();
			sum[t]=sum[t-1]+x;
			mx[t]=max(mx[t-1],sum[t]);
		}
		if(s=="Ask"){
			cin>>x;
			cout<<mx[x]<<endl;
		}
	}
	return 0;
} 
相关推荐
羌俊恩1 小时前
Vim modeline 命令执行漏洞(CVE-2026-34714)修复指导
linux·编辑器·vim·漏洞·cve-2026-34714
Project_Observer3 小时前
为您的项目选择最合适的Zoho Projects自动化巧能
大数据·运维·人工智能·深度学习·机器学习·自动化·编辑器
好运的阿财3 小时前
“锟斤拷”问题——程序中用powershell执行命令出现中文乱码的解决办法
linux·前端·人工智能·机器学习·架构·编辑器·vim
砖头拍死你3 小时前
Powershell使用vim修改文件保存后文件名自动全变小写
linux·编辑器·vim
番茄炒西红柿炒洋柿子7 小时前
CC Switch搭建到vscode
vscode·编辑器
爱分享的阿Q7 小时前
VSCode1114-AI全面接管编辑器
人工智能·编辑器
数据知道9 小时前
claw-code 源码详细分析:compat-harness——对接编辑器生态时,兼容层该吞掉哪些「历史包袱」?
ai·编辑器·claude code·claw code
大强同学19 小时前
对比 VS Code:Zed 编辑器编码体验全面解析
人工智能·windows·编辑器·ai编程
ii_best1 天前
lua语言开发脚本基础、mql命令库开发、安卓/ios基础开发教程,按键精灵新手工具
android·ios·自动化·编辑器
Highcharts.js1 天前
企业级可视化生态系统|关于Highcharts集成的前端框架、后端编程语言与生态
开发语言·javascript·python·前端框架·编辑器·编程语言·highcharts