Cod sursa(job #278334)

Utilizator ghiutaalexGhiuta Alex ghiutaalex Data 12 martie 2009 11:29:13
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
FILE*f=fopen("oo.in","r");
FILE*g=fopen("oo.out","w");
long n;
int a[100001],b[100001],ans;

void citire()
{
 long i;
 fscanf(f,"%ld",&n);
 for(i=1;i<=n;i++)
 	fscanf(f,"%d",&a[i]);
}

int max(int x,int y)
{
 if(x>y) return x;
 return y;
}

int solve()
{
 int i;
 b[2]=a[1]+a[2];
 for(i=3;i<=n;++i)
	b[i]=max(b[i-1],a[i]+a[i-1]+b[i-3]);
 ans=max(ans,b[n-1]);
 b[2]=0;
 for(i=3;i<=n;++i)
	b[i]=max(b[i-1],a[i]+a[i-1]+b[i-3]);
 ans=max(ans,b[n]);
 b[1]=b[2]=a[1]+a[n];
 b[0]=0;
 for(i=3;i<n-1;++i)
	b[i]=max(b[i-1],a[i]+a[i-1]+b[i-3]);
 ans=max(ans,b[n-2]);
 return ans;
}

int main()
{
 citire();
 fprintf(g,"%d",solve());
 return 0;
}