Cod sursa(job #423747)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 24 martie 2010 11:23:21
Problema Oo Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#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;
}