Pagini recente » Cod sursa (job #689956) | Cod sursa (job #301527) | Cod sursa (job #1898314) | Cod sursa (job #2319627) | Cod sursa (job #2474537)
#include <stdio.h>
#include <iostream>
#define NMAX 100005
using namespace std;
FILE *fin = fopen("oo.in", "r");
FILE *fout = fopen("oo.out", "w");
int n,a[NMAX],i,ans;
int solve(int left, int right)
{
int i,dp[NMAX];
for(i=left; i<=right; ++i)
dp[i] = 0;
dp[left+1] = a[left]+a[left+1];
for(i=left+2; i<=right; ++i)
dp[i] = max(dp[i-1], dp[i-3]+a[i-1]+a[i]);
return dp[right];
}
int main()
{
fscanf(fin, "%d", &n);
for(i=1; i<=n; ++i)
fscanf(fin, "%d", &a[i]);
a[n+1] = a[1];
ans = max(ans, solve(1, n-1));
ans = max(ans, solve(2, n));
ans = max(ans, solve(3, n+1));
fprintf(fout, "%d", ans);
fclose(fin);
fclose(fout);
return 0;
}