Submission #1164219


Source Code Expand

#include <iostream>
#include <vector>
using namespace std;
typedef long long lli;
lli n;
vector<lli> a;
lli dp[100005][2][2];
int main(int argc, char const *argv[]) {
    cin >> n;
    lli x;
    char c;
    cin >> x;
    a.push_back(x);
    for(lli i = 1;i < n;i++){
        cin >> c >> x;
        if(c == '-') a.push_back(x*-1);
        if(c == '+'){
            if(a.back() > 0) a.back() += x;
            else a.push_back(x);
        }
    }
    for(lli i = 0;i < a.size();i++){
        dp[i][0][0] = dp[i][1][0] = dp[i][1][1] = -100000000000000;
    }
    if(a.size() == 1){
        cout << a[0] << endl;
        return 0;
    }
    dp[2][0][0] = dp[2][1][1] = a[0]+a[1];
    for(lli i = 2;i < a.size();i++){
        if(a[i] < 0){
            dp[i+1][0][0] = dp[i][0][0]+a[i];
            dp[i+1][1][0] = max(dp[i][1][0]+a[i],dp[i][1][1]-a[i]);
            dp[i+1][1][1] = max(dp[i][1][0]+a[i],max(dp[i][1][1]-a[i],dp[i][0][0]+a[i]));
        }else{
            dp[i+1][0][0] = dp[i][0][0]+a[i];
            dp[i+1][1][0] = max(dp[i][1][0]+a[i],dp[i][1][1]-a[i]);
            dp[i+1][1][1] = max(dp[i][1][0]+a[i],dp[i][1][1]-a[i]);
        }
    }
    cout << max(max(dp[a.size()][0][0],dp[a.size()][1][0]),dp[a.size()][1][1]) << endl;
    return 0;
}

Submission Info

Submission Time
Task E - Addition and Subtraction Hard
User deoxy
Language C++14 (GCC 5.4.1)
Score 900
Code Size 1300 Byte
Status AC
Exec Time 51 ms
Memory 4340 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 48 ms 256 KB
subtask_1_alladd_02.txt AC 48 ms 256 KB
subtask_1_alladd_03.txt AC 48 ms 256 KB
subtask_1_alladd_04.txt AC 48 ms 256 KB
subtask_1_allsub_01.txt AC 50 ms 4340 KB
subtask_1_allsub_02.txt AC 50 ms 4340 KB
subtask_1_allsub_03.txt AC 50 ms 4340 KB
subtask_1_allsub_04.txt AC 50 ms 4340 KB
subtask_1_cont_01.txt AC 27 ms 1276 KB
subtask_1_cont_02.txt AC 21 ms 1148 KB
subtask_1_cont_03.txt AC 18 ms 1020 KB
subtask_1_cont_04.txt AC 5 ms 384 KB
subtask_1_killer_01.txt AC 45 ms 256 KB
subtask_1_killer_02.txt AC 32 ms 256 KB
subtask_1_killer_03.txt AC 46 ms 256 KB
subtask_1_killer_04.txt AC 32 ms 256 KB
subtask_1_max_01.txt AC 51 ms 3316 KB
subtask_1_max_02.txt AC 51 ms 3316 KB
subtask_1_max_03.txt AC 51 ms 3316 KB
subtask_1_max_04.txt AC 51 ms 3316 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 31 ms 2168 KB
subtask_1_rand_02.txt AC 37 ms 2424 KB
subtask_1_rand_03.txt AC 6 ms 640 KB
subtask_1_rand_04.txt AC 16 ms 1276 KB