Submission #7025204
Source Code Expand
#include <algorithm> #include <assert.h> #include <iostream> #include <cstring> #include <vector> #include <cstdio> #include <cmath> using namespace std; typedef long long ll; const int MX = 100005; template <typename T> void read(T &x) { x = 0; char c = getchar(); bool f = 0; while(!isdigit(c) && c!='-') c = getchar(); if(c == '-') f = 1, c = getchar(); while(isdigit(c)) x = x*10+c-'0', c = getchar(); if(f) x = -x; } template <typename T> T max(const T &x, const T &y, const T &z) { return max(max(x, y), z); } int n; int opr[MX], seq[MX]; ll f[MX][3]; int main() { read(n); opr[1] = +1; for(int i=1; i<=n; i++) { read(seq[i]); if(i != n) { char c = getchar(); while(c!='+' && c!='-') c = getchar(); if(c == '+') opr[i+1] = +1; else opr[i+1] = -1; } } f[0][1] = f[0][2] = -1e18; for(int i=1; i<=n; i++) { if(opr[i] == +1) { f[i][0] = max(f[i-1][0]+seq[i], f[i-1][1]+seq[i], f[i-1][2] + seq[i]); f[i][1] = max(f[i-1][1]-seq[i], f[i-1][2]-seq[i]); f[i][2] = f[i-1][2]+seq[i]; } else { f[i][0] = -1e18; f[i][1] = max(f[i-1][0]-seq[i], f[i-1][1]-seq[i], f[i-1][2]-seq[i]); f[i][2] = max(f[i-1][1]+seq[i], f[i-1][2]+seq[i]); } //cout<<i<<" : "<<f[i][0]<<" "<<f[i][1]<<" "<<f[i][2]<<endl; } printf("%lld\n", max(f[n][0], f[n][1], f[n][2])); return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Addition and Subtraction Hard |
User | boshi |
Language | C++14 (GCC 5.4.1) |
Score | 900 |
Code Size | 1328 Byte |
Status | AC |
Exec Time | 13 ms |
Memory | 3328 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 900 / 900 | ||||
Status |
|
|
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 | 12 ms | 3328 KB |
subtask_1_alladd_02.txt | AC | 12 ms | 3328 KB |
subtask_1_alladd_03.txt | AC | 12 ms | 3328 KB |
subtask_1_alladd_04.txt | AC | 12 ms | 3328 KB |
subtask_1_allsub_01.txt | AC | 12 ms | 3328 KB |
subtask_1_allsub_02.txt | AC | 12 ms | 3328 KB |
subtask_1_allsub_03.txt | AC | 12 ms | 3328 KB |
subtask_1_allsub_04.txt | AC | 12 ms | 3328 KB |
subtask_1_cont_01.txt | AC | 7 ms | 1920 KB |
subtask_1_cont_02.txt | AC | 6 ms | 1536 KB |
subtask_1_cont_03.txt | AC | 5 ms | 1280 KB |
subtask_1_cont_04.txt | AC | 2 ms | 512 KB |
subtask_1_killer_01.txt | AC | 11 ms | 3200 KB |
subtask_1_killer_02.txt | AC | 8 ms | 2304 KB |
subtask_1_killer_03.txt | AC | 12 ms | 3200 KB |
subtask_1_killer_04.txt | AC | 8 ms | 2304 KB |
subtask_1_max_01.txt | AC | 13 ms | 3328 KB |
subtask_1_max_02.txt | AC | 13 ms | 3328 KB |
subtask_1_max_03.txt | AC | 13 ms | 3328 KB |
subtask_1_max_04.txt | AC | 13 ms | 3328 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 | 8 ms | 2176 KB |
subtask_1_rand_02.txt | AC | 10 ms | 2432 KB |
subtask_1_rand_03.txt | AC | 2 ms | 512 KB |
subtask_1_rand_04.txt | AC | 5 ms | 1152 KB |