Submission #1371257


Source Code Expand

#include <iostream>
#include <vector>

int main() {
  unsigned N;
  std::cin >> N;
  std::vector<long long> A(N);
  std::vector<char> op(N);
  op[0] = '+';
  std::cin >> A[0];
  for (unsigned i = 1; i < N; ++i) {
    std::cin >> op[i] >> A[i];
  }
  std::vector<std::vector<long long>> dp(N, std::vector<long long>(3));
  dp[0][0] = A[0];
  dp[0][1] = std::numeric_limits<long long>::min() / 2;
  dp[0][2] = std::numeric_limits<long long>::min() / 2;
  for (unsigned i = 1; i < N; ++i) {
    if (op[i] == '+') {
      dp[i][0] = std::max(dp[i - 1][0] + A[i], dp[i - 1][1] + A[i]);
      dp[i][1] = std::max(dp[i - 1][1] - A[i], dp[i - 1][2] - A[i]);
      dp[i][2] = dp[i - 1][2] + A[i];
    } else {
      dp[i][0] = std::max(dp[i - 1][0] - A[i], dp[i - 1][1] - A[i]);
      dp[i][1] = std::max(std::max(dp[i - 1][0] - A[i], dp[i - 1][2] + A[i]), dp[i - 1][1] + A[i]);
      dp[i][2] = std::max(dp[i - 1][1] + A[i], dp[i - 1][2] - A[i]);
    }
  }
  std::cout << std::max(std::max(dp.back()[0], dp.back()[1]), dp.back()[2]);
  return 0;
}

Submission Info

Submission Time
Task E - Addition and Subtraction Hard
User ytsmiling
Language C++14 (Clang 3.8.0)
Score 0
Code Size 1069 Byte
Status WA
Exec Time 137 ms
Memory 6656 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 900
Status
AC × 3
AC × 17
WA × 12
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 7 ms 888 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_alladd_01.txt AC 136 ms 6656 KB
subtask_1_alladd_02.txt AC 135 ms 6656 KB
subtask_1_alladd_03.txt AC 136 ms 6656 KB
subtask_1_alladd_04.txt AC 136 ms 6656 KB
subtask_1_allsub_01.txt AC 136 ms 6656 KB
subtask_1_allsub_02.txt AC 136 ms 6656 KB
subtask_1_allsub_03.txt AC 136 ms 6656 KB
subtask_1_allsub_04.txt AC 137 ms 6656 KB
subtask_1_cont_01.txt AC 74 ms 3712 KB
subtask_1_cont_02.txt AC 56 ms 2816 KB
subtask_1_cont_03.txt AC 47 ms 2432 KB
subtask_1_cont_04.txt AC 12 ms 768 KB
subtask_1_killer_01.txt WA 127 ms 6144 KB
subtask_1_killer_02.txt WA 89 ms 4352 KB
subtask_1_killer_03.txt WA 131 ms 6400 KB
subtask_1_killer_04.txt WA 89 ms 4352 KB
subtask_1_max_01.txt WA 136 ms 6656 KB
subtask_1_max_02.txt WA 137 ms 6656 KB
subtask_1_max_03.txt WA 137 ms 6656 KB
subtask_1_max_04.txt WA 137 ms 6656 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 WA 83 ms 4096 KB
subtask_1_rand_02.txt WA 98 ms 4864 KB
subtask_1_rand_03.txt WA 13 ms 768 KB
subtask_1_rand_04.txt WA 41 ms 2176 KB