P8683 [蓝桥杯 2019 省 B] 后缀表达式

题目描述

给定 �N 个加号、 �M 个减号以及 �+�+1N+M+1 个整数 �1,�2,⋯ ,��+�+1A1​,A2​,⋯,AN+M+1​,小明想知道在所有由这 �N 个加号、 �M 个减号以及 �+�+1N+M+1 个整数凑出的合法的后缀表达式中,结果最大的是哪一个。

请你输出这个最大的结果。

例如使用 1 2 3 + -,则 2 3 + 1 - 这个后缀表达式结果是 44,是最大的。

输入格式

第一行包含两个整数 �N 和 �M。

第二行包含 �+�+1N+M+1 个整数 �1,�2,⋯ ,��+�+1A1​,A2​,⋯,AN+M+1​。

输出格式

输出一个整数,代表答案。

cpp 复制代码
#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N=2e5+10;
int a[N];
signed main()
{
	std::ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	
	
	int n,m;cin>>n>>m;//加号 减号 
	int sum=0;//结果 
	
	for(int i=1;i<=n+m+1;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+n+m+2);
	
	
	if(m==0)
	{
		for(int i=1;i<=n+m+1;i++)sum+=a[i];
	}
	else{
		sum=a[n+m+1]-a[1];
		for(int i=2;i<=n+m;i++)
		{
			sum+=abs(a[i]);
		}
	}
	cout<<sum<<endl;
	return 0;
}

在做的时候还是有个小问题,就是数组的声明最好放在外面,不然我就是三个测试点没过超时了==

相关推荐
夏鹏今天学习了吗5 小时前
【LeetCode热题100(92/100)】多数元素
算法·leetcode·职场和发展
夏鹏今天学习了吗11 小时前
【LeetCode热题100(90/100)】编辑距离
算法·leetcode·职场和发展
a程序小傲12 小时前
京东Java面试被问:RPC调用的熔断降级和自适应限流
java·开发语言·算法·面试·职场和发展·rpc·边缘计算
夏鹏今天学习了吗13 小时前
【LeetCode热题100(94/100)】下一个排列
算法·leetcode·职场和发展
lixzest14 小时前
3 分钟职场技术分享 IDEA 演讲模板
职场和发展
lixzest14 小时前
IDEA演讲密码
职场和发展
a努力。15 小时前
蚂蚁Java面试被问:流批一体架构的实现和状态管理
java·后端·websocket·spring·面试·职场和发展·架构
静听松涛13315 小时前
信息系统规划到上线全流程指南
论文阅读·面试·职场和发展·流程图
POLITE316 小时前
Leetcode 94. 二叉树的中序遍历 104. 二叉树的最大深度 226. 翻转二叉树 101. 对称二叉树 (Day 13)
算法·leetcode·职场和发展
WYiQIU16 小时前
普及一下字节前端岗需要达到的强度......
前端·javascript·vue.js·面试·职场和发展