Pagini recente » Cod sursa (job #2724648) | Cod sursa (job #2231364) | Cod sursa (job #568513) | Cod sursa (job #448746) | Cod sursa (job #423747)
Cod sursa(job #423747)
#include<stdio.h>
FILE*f=fopen("oo.in","r");
FILE*g=fopen("oo.out","w");
int i,s[100005],n,max1,max2,max3;
char v[100005];
int max(int a,int b){
if(b>a)
a=b;
return a;
}
int main () {
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
s[0]=0; s[1]=0; s[2]=v[1]+v[2];s[3]=s[2];
for(i=4;i<=n;i++)
s[i]=max(s[i-1],v[i-1]+v[i]+s[i-3]);
//fprintf(g,"%d",s[n-1]);
max1=s[n-1];
//s[0]=;
s[1]=s[2]=v[1]+v[n];
for(i=3;i<=n-2;i++)
s[i]=max(s[i-1],v[i-1]+v[i]+s[i-3]);
//fprintf(g,"\n%d",s[n-3]);
max2=s[n-3];
s[0]=s[1]=s[2]=0;
for(i=3;i<=n;i++)
s[i]=max(s[i-1],v[i-1]+v[i]+s[i-3]);
//fprintf(g,"\n%d",s[n]);
max3=s[n];
if(max1<max2)
max1=max2;
if(max1<max3)
max1=max3;
fprintf(g,"%d",max1);
fclose(f);
fclose(g);
return 0;
}