Pagini recente » Cod sursa (job #1492657) | Cod sursa (job #1838119) | Cod sursa (job #2963909) | Cod sursa (job #2041866) | Cod sursa (job #3171218)
#include <bits/stdc++.h>
using namespace std;
ofstream fout("oo.out");
ifstream fin("oo.in");
/* muie pbinfo
#define miauDebug
#ifdef miauDebug
#define mau(x) MIAUMIAU(#x, x)
#else
#define mau(x)
#endif
void MIAUMIAU(const char* var_name, auto var_value) {
cout << var_name << " = " << var_value << endl;
}
*/
using ll = long long;
const int nM = 1e5+5;
const ll MOD = 4001;
// :3
int dp[nM];
void solve() {
int n; fin >> n;
vector<int> v(n+5);
for(int z = 1; z <= n; z++)
fin >> v[z];
dp[2] = v[1]+v[2], dp[3]=dp[2], dp[4]=dp[3];
int mx = dp[2];
for(int z = 5; z < n; z++)
{
dp[z] = max(dp[z-1], dp[z-3] + v[z-1] + v[z]);
mx = max(mx, dp[z]);
}
for(int z = 0; z < nM; z++) dp[z]=0;
dp[1] = v[n] + v[1];
dp[2] = dp[1];
dp[3] = dp[2];
mx = max(dp[1], mx);
for(int z = 4; z < n-1; z++)
{
dp[z] = max(dp[z-1], dp[z-3] + v[z-1] + v[z]);
mx = max(mx, dp[z]);
}
for(int z = 0; z < nM; z++) dp[z]=0;
for(int z = 3; z <= n; z++)
{
dp[z] = max(dp[z-1], dp[z-3] + v[z-1] + v[z]);
mx = max(mx, dp[z]);
}
fout << mx;
}
signed main()
{
cout.tie(NULL);
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int tt = 1; //cin >> tt;
while(tt--)
solve();
}