Submission #1218252


Source Code Expand

// In the name of Allah
// #Isart

#include<bits/stdc++.h>

#define pii pair<int, int>
#define pb push_back
#define F first
#define S second
#define ll long long
#define ld long double

using namespace std;

const int MAXN = 1e5 + 10;
ll a[MAXN], dp[MAXN], ps[MAXN];
int r[MAXN];

int main(){
	ios::sync_with_stdio(false); cin.tie(0);
	
	int n, s = 1;
	cin >> n;
	
	for(int i = 0; i < n; i ++){
		char ch = '+';
		if(i) cin >> ch;
		if(ch == '+') s = 1;
		else s = -1;
		cin >> a[i];
		a[i] *= s;
	}	
	for(int i = n - 1; i > -1; i --)
		ps[i] = ps[i + 1] + abs(a[i]);

	for(int i = n - 1; i > -1; i --){
		if(a[i] > 0 and a[i + 1] <= 0) r[i] = i;
		else r[i] = r[i + 1];
	}

	for(int i = n - 1; i > -1 ; i --){
		if(a[i] >= 0) dp[i] = dp[i + 1] + a[i];
		else if(a[i] < 0 and a[i + 1] < 0)
			dp[i] = a[i] + ps[i + 1];
		else if(a[i] < 0 and a[i + 1] > 0)
			dp[i] = max(a[i] + dp[i + 1], 2 * ps[r[i] + 1] - ps[i]);
		
	}
	cout << dp[0] << endl;

//	system("pause");
	return 0;	
}

Submission Info

Submission Time
Task E - Addition and Subtraction Hard
User MODSART
Language C++14 (GCC 5.4.1)
Score 900
Code Size 1032 Byte
Status AC
Exec Time 15 ms
Memory 2944 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 29
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_alladd_01.txt, subtask_1_alladd_02.txt, subtask_1_alladd_03.txt, subtask_1_alladd_04.txt, subtask_1_allsub_01.txt, subtask_1_allsub_02.txt, subtask_1_allsub_03.txt, subtask_1_allsub_04.txt, subtask_1_cont_01.txt, subtask_1_cont_02.txt, subtask_1_cont_03.txt, subtask_1_cont_04.txt, subtask_1_killer_01.txt, subtask_1_killer_02.txt, subtask_1_killer_03.txt, subtask_1_killer_04.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_max_03.txt, subtask_1_max_04.txt, subtask_1_min_01.txt, subtask_1_min_02.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt, subtask_1_rand_04.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_alladd_01.txt AC 14 ms 2944 KB
subtask_1_alladd_02.txt AC 14 ms 2944 KB
subtask_1_alladd_03.txt AC 14 ms 2944 KB
subtask_1_alladd_04.txt AC 14 ms 2944 KB
subtask_1_allsub_01.txt AC 14 ms 2944 KB
subtask_1_allsub_02.txt AC 14 ms 2944 KB
subtask_1_allsub_03.txt AC 14 ms 2944 KB
subtask_1_allsub_04.txt AC 14 ms 2944 KB
subtask_1_cont_01.txt AC 8 ms 1792 KB
subtask_1_cont_02.txt AC 6 ms 1408 KB
subtask_1_cont_03.txt AC 5 ms 1152 KB
subtask_1_cont_04.txt AC 2 ms 512 KB
subtask_1_killer_01.txt AC 13 ms 2816 KB
subtask_1_killer_02.txt AC 9 ms 2048 KB
subtask_1_killer_03.txt AC 13 ms 2944 KB
subtask_1_killer_04.txt AC 9 ms 2048 KB
subtask_1_max_01.txt AC 15 ms 2944 KB
subtask_1_max_02.txt AC 15 ms 2944 KB
subtask_1_max_03.txt AC 15 ms 2944 KB
subtask_1_max_04.txt AC 15 ms 2944 KB
subtask_1_min_01.txt AC 1 ms 256 KB
subtask_1_min_02.txt AC 1 ms 256 KB
subtask_1_rand_01.txt AC 10 ms 1920 KB
subtask_1_rand_02.txt AC 11 ms 2176 KB
subtask_1_rand_03.txt AC 2 ms 512 KB
subtask_1_rand_04.txt AC 5 ms 1024 KB