Pagini recente » Cod sursa (job #1077370) | Cod sursa (job #1866685) | Cod sursa (job #532547) | Cod sursa (job #3272242) | Cod sursa (job #3228131)
#include <fstream>
#include <climits>
#include <vector>
#include <cassert>
#include <algorithm>
#define ll long long
using namespace std;
const int NMAX = 1e5;
int a[NMAX + 1];
int d[NMAX + 1][2];
int n;
int nxt(int val)
{
if (val == n)
return 1;
return val + 1;
}
int prv(int val)
{
if (val == 1)
return n;
return val - 1;
}
signed main()
{
ifstream cin("oo.in");
ofstream cout("oo.out");
int i, j;
cin >> n;
for (i = 1; i <= n; i++)
cin >> a[i];
int ans = 0;
//iau primele 2
d[2][1] = a[1] + a[2];
ans = a[1] + a[2];
d[2][0] = -1e9;
for (i = 3; i < n; i++)
{
d[i][0] = max(d[i - 1][0], d[i - 1][1]);
d[i][1] = a[i] + a[i - 1] + d[i - 2][0];
ans = max(ans, max(d[i][0], d[i][1]));
}
//nu iau primele 2
d[2][0] = 0;
d[2][1] = -1e9;
for (i = 3; i <= n; i++)
{
d[i][0] = max(d[i - 1][0], d[i - 1][1]);
d[i][1] = a[i] + a[i - 1] + d[i - 2][0];
ans = max(ans, max(d[i][0], d[i][1]));
}
cout << ans;
}