Pagini recente » Cod sursa (job #2137776) | Cod sursa (job #552944) | Cod sursa (job #1583467) | Cod sursa (job #3157751) | Cod sursa (job #590179)
Cod sursa(job #590179)
#include <stdio.h>
#define N 100005
using namespace std;
int n,REZ,A[4][N],X[N];
FILE *f,*g;
void citire()
{
int i;
fscanf(f,"%d",&n);
for (i=1;i<=n;++i)
fscanf(f,"%d",&X[i]);
X[0]=X[n];
}
int maxim(int a, int b)
{
if (a>=b)
return a;
else
return b;
}
void solve()
{
int i,j,x;
x=n-3;
REZ=0;
for (i=1;i<=3;++i)
{
A[i][i+1]=A[i][i]=X[i]+X[i-1];
for (j=i+2;j<=x+i;++j)
A[i][j]=maxim(A[i][j-1],A[i][j-3]+X[j]+X[j-1]);
if (A[i][x+i]>REZ)
REZ=A[i][x+i];
}
fprintf(g,"%d",REZ);
}
int main()
{
f=fopen("oo.in","r");
g=fopen("oo.out","w");
citire();
if (n==2)
{
fprintf(g,"%d",X[1]+X[2]);
fclose(f);
fclose(g);
return 0;
}
solve();
fclose(f);
fclose(g);
return 0;
}