#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++;
}
}
if (s == 1) {
vector<ll> pref(n);
pref[0] = a[0];
for (int i = 1; i < n; i++) {
pref[i] = pref[i - 1] + a[i];
}
ll minpref = 0;
ll count = 0;
ll maxcount = 0;
for (int i = 0; i < n; i++) {
count = pref[i] - minpref;
if (count > maxcount) {
maxcount = count;
}
minpref = min(minpref, pref[i]);
}
cout << maxcount << "\n";
return 0;
}
// sub 1
if (pos + zero == n) {
cout << sum << "\n";
return 0;
}
// sub2
if (neg == 1 and s > 1) {
sum = 0;
for (int i = 0; i < n; i++) {
if (a[i] >= 0) {
sum += a[i];
}
}
cout << sum << "\n";
return 0;
}
// sub 3
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |