Pagini recente » Cod sursa (job #735609) | Cod sursa (job #2109681) | Cod sursa (job #2804724) | Cod sursa (job #285973) | Cod sursa (job #40595)
Cod sursa(job #40595)
#include <stdio.h>
#include <iostream>
using namespace std;
int sir[100001];
int din[100001];
int maxm;
int n;
int main()
{
int i,j;
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d\n", &n);
for ( i = 1; i <= n; i++ )
scanf("%d ", &sir[i] );
// Iau prima pereche
din[1] = sir[1] + sir[2];
for ( i = 4; i < n-1; i++ )
{
for ( j = 3; j <= 5; j++ )
if ( i - j > 0 )
din[i] = max( din[i], sir[i]+sir[i+1]+din[i-j] );
if ( din[i] > maxm ) maxm = din[i];
}
// Iau a2a pereche
din[1] = 0;
din[2] = sir[2] + sir[3];
for ( i = 5; i <= n; i++ )
{
din[i] = sir[i]+sir[i+1];
if ( i == n ) din[i] = sir[i] + sir[1];
for ( j = 3; j <= 5; j++ )
if ( i - j > 0 )
din[i] = max( din[i], sir[i]+sir[i+1]+din[i-j] );
if ( din[i] > maxm ) maxm = din[i];
}
// Iau a3a pereche
din[1] = din[2] = 0;
din[3] = sir[3]+sir[4];
for ( i = 6; i <= n; i++ )
{
din[i] = sir[i]+sir[i+1];
if ( i == n ) din[i] = sir[i] + sir[1];
for ( j = 3; j <= 5; j++ )
if ( i - j > 0 )
din[i] = max( din[i], sir[i]+sir[i+1]+din[i-j] );
if ( din[i] > maxm ) maxm = din[i];
}
printf("%d\n", maxm );
fclose(stdin);
fclose(stdout);
return 0;
}