P11035 【MX-X3-T2】「RiOI-4」消えた夏の夢

题目背景

いつまでも二人語り合おう
終わった夏を
探してた夢をそっと
終わらせよう戻らないように
お別れだね
君へ届けと願った声が
風になって心の隙間を
通り抜けた
——《消えた夏の夢》

小 T 不会出题。

题目描述

小 T 手中有一个数 �x,初始时为 �p。而小 ⊥ 手中有一个长为 �n 的序列 �a。一次操作中,小 T 需要依次进行如下的修改:

  • 选中 �a 中的一个数 ��ai​。
  • 将 �x 加上 ��ai​。
  • 让 ��ai​ 变为自身的相反数,即 −��−ai​。

小 T 想知道,在若干次操作(可以不进行操作,同一个位置可以选中多次)之后,小 T 手中的数 �x 最大是多少。

输入格式

第一行两个整数 �,�n,p。

第二行 �n 个整数 ��ai​。

输出格式

输出一行仅一个整数,表示 �x 最大是多少。

输入输出样例

输入 #1复制

6 3
1 1 -4 5 1 -4

输出 #1复制

11

输入 #2复制

7 4
1 -9 -1 -9 8 -1 0

输出 #2复制

13

说明/提示

【样例解释 #1】

对于样例,你可以依次执行以下操作:

  • 选中 �5=1a5​=1,�x 变为 3+1=43+1=4,�5a5​ 变为 −1−1。
  • 选中 �1=1a1​=1,�x 变为 4+1=54+1=5,�1a1​ 变为 −1−1。
  • 选中 �3=−4a3​=−4,�x 变为 5−4=15−4=1,�3a3​ 变为 44。
  • 选中 �4=5a4​=5,�x 变为 1+5=61+5=6,�4a4​ 变为 −5−5。
  • 选中 �2=1a2​=1,�x 变为 6+1=76+1=7,�2a2​ 变为 −1−1。
  • 选中 �3=4a3​=4,�x 变为 7+4=117+4=11,�3a3​ 变为 −4−4。

可以证明 �x 的最大值为 1111。注意,并不是只有样例中展示的方案可以达到这个最大值。

【数据范围】

测试点编号�≤n≤特殊性质
1∼31∼32020
4∼54∼5105105��<0ai​<0
6∼76∼7105105��≥0ai​≥0
8∼108∼10105105

对于 100%100% 的数据,1≤�≤1051≤n≤105,∣��∣,∣�∣≤109∣ai​∣,∣p∣≤109。

代码:

        太简单了!!!

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N=1e5+5;
ll a[N],n,x;
void solve(){
	cin>>n>>x;
	for(int i=1;i<=n;++i) cin>>a[i];
	for(int i=1;i<=n;++i){
		if(a[i]>0) x+=a[i];
	}
	cout<<x;
	return ;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int T = 1;
	while(T--){
		solve();
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值