Submission #1308942

#TimeUsernameProblemLanguageResultExecution timeMemory
1308942lyra_g13Feast (NOI19_feast)C++20
0 / 100
29 ms2620 KiB
#include <bits/stdc++.h>
using ll = long long;
using namespace std;

int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(nullptr);

  ll n, s;
  cin >> n >> s;

  vector<ll> a(n);

  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }

  ll pos = 0;
  ll sum = 0;
  ll neg = 0;
  ll zero = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    sum += a[i];
    if (a[i] > 0)
      pos++;
    if (a[i] == 0) {
      zero++;
    }
    if (a[i] < 0) {
      neg++;
    }
  }

  // sub 1
  if (pos + zero == n) {
    cout << sum << "\n";
  }

  // sub2
  if (neg == 1 and s == 1) {
    ll maxsub = 0;
    ll count = 0;
    for (int i = 0; i < n; i++) {
      if (a[i] >= 0) {
        count += a[i];
      } else {
        maxsub = max(count, maxsub);
        count = 0;
      }
    }
    cout << maxsub << "\n";
  } else {
    sum = 0;
    for (int i = 0; i < n; i++) {
      if (a[i] >= 0) {
        sum += a[i];
      }
    }
    cout << sum << "\n";
  }

  // sub 3

  if (s == 1) {
    ll maxsub = 0;
    ll count = 0;
    for (int i = 0; i < n; i++) {
      if (a[i] >= 0) {
        count += a[i];
      } else {
        maxsub = max(count, maxsub);
        count = 0;
      }
    }
    cout << maxsub << "\n";
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...