#include<iostream> using namespace std; int P[1000005]; int N[1000005]; int main() { ios_base::sync_with_stdio(0); int n; cin >> n; N[0] = -1; for (int i = 1; i <= n; i++) { P[i] = N[i] = -1; int x; cin >> x; if (x % 2 == 0) { if (N[i - 1] == -1) N[i] = -1; else N[i] = N[i - 1] + x; if (P[i - 1] == -1) P[i] = -1; else P[i] = P[i - 1] + x; } else { if (N[i - 1] == -1) P[i] = max(-1, P[i - 1]); else P[i] = max(N[i - 1] + x, P[i - 1]); if (P[i - 1] == -1) N[i] = max(-1, N[i - 1]); else N[i] = max(P[i - 1] + x, N[i - 1]); } } if (P[n] <= 0) cout << "NIESTETY\n"; else cout << P[n] << "\n"; 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 35 36 37 38 39 40 41 | #include<iostream> using namespace std; int P[1000005]; int N[1000005]; int main() { ios_base::sync_with_stdio(0); int n; cin >> n; N[0] = -1; for (int i = 1; i <= n; i++) { P[i] = N[i] = -1; int x; cin >> x; if (x % 2 == 0) { if (N[i - 1] == -1) N[i] = -1; else N[i] = N[i - 1] + x; if (P[i - 1] == -1) P[i] = -1; else P[i] = P[i - 1] + x; } else { if (N[i - 1] == -1) P[i] = max(-1, P[i - 1]); else P[i] = max(N[i - 1] + x, P[i - 1]); if (P[i - 1] == -1) N[i] = max(-1, N[i - 1]); else N[i] = max(P[i - 1] + x, N[i - 1]); } } if (P[n] <= 0) cout << "NIESTETY\n"; else cout << P[n] << "\n"; return 0; } |