#include "kanapka.h" #include "message.h" #include <vector> #include <iostream> using namespace std; typedef long long ll; int main() { ll n = GetN(); vector<ll> a(n); for (int i = 0; i < n; ++i) a[i] = GetTaste(i); vector<ll> pref(n); pref[0] = a[0]; for (int i = 1; i < n; ++i) pref[i] = pref[i - 1] + a[i]; vector<ll> suf(n); suf[n - 1] = a[n - 1]; for (int i = n - 2; i >= 0; --i) suf[i] = suf[i + 1] + a[i]; for (int i = 1; i < n; ++i) pref[i] = max(pref[i], pref[i - 1]); for (int i = n - 2; i >= 0; --i) suf[i] = max(suf[i], suf[i + 1]); ll wyn = 0; for (int i = 0; i < n - 1; ++i) { wyn = max(wyn, pref[i] + suf[i + 1]); wyn = max(wyn, pref[i]); wyn = max(wyn, suf[i + 1]); } wyn = max(wyn, suf[n - 1]); wyn = max(wyn, pref[n - 1]); if (MyNodeId() == 0) cout << wyn; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include "kanapka.h" #include "message.h" #include <vector> #include <iostream> using namespace std; typedef long long ll; int main() { ll n = GetN(); vector<ll> a(n); for (int i = 0; i < n; ++i) a[i] = GetTaste(i); vector<ll> pref(n); pref[0] = a[0]; for (int i = 1; i < n; ++i) pref[i] = pref[i - 1] + a[i]; vector<ll> suf(n); suf[n - 1] = a[n - 1]; for (int i = n - 2; i >= 0; --i) suf[i] = suf[i + 1] + a[i]; for (int i = 1; i < n; ++i) pref[i] = max(pref[i], pref[i - 1]); for (int i = n - 2; i >= 0; --i) suf[i] = max(suf[i], suf[i + 1]); ll wyn = 0; for (int i = 0; i < n - 1; ++i) { wyn = max(wyn, pref[i] + suf[i + 1]); wyn = max(wyn, pref[i]); wyn = max(wyn, suf[i + 1]); } wyn = max(wyn, suf[n - 1]); wyn = max(wyn, pref[n - 1]); if (MyNodeId() == 0) cout << wyn; return 0; } |