Cod sursa(job #175903)

Utilizator DorinOltean Dorin Dorin Data 10 aprilie 2008 16:24:18
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
# include <stdio.h>

# define input "oo.in"
# define output "oo.out"

# define max 100011
# define maxim(a,b) (a>b?a:b)

int a[max],i,n,b[max],c[max],d[max];
int res;

int main()
{
	freopen(input,"r",stdin);
	freopen(output,"w",stdout);

	scanf("%d",&n);
	n+=4;
	for(i=5;i<=n;i++)
		scanf("%d",&a[i]);
    
    a[n+1] = a[5];
    for ( i = 6; i < n; i++)
      b[i] = maxim(maxim(b[i-3],b[i-4]),b[i-5]) + a[i] + a[i-1];
    for ( i = 7; i <= n; i++)
      c[i] = maxim(maxim(c[i-3],c[i-4]),c[i-5]) + a[i] + a[i-1];
    for( i = 8; i <= n + 1; i++)
      d[i] = maxim(maxim(d[i-3],d[i-4]),d[i-5]) + a[i] + a[i-1];
      
    res = maxim(b[n-1],b[n-2]);
    res = maxim(res,b[n-3]);
    res = maxim(res,c[n]);
    res = maxim(res,c[n-1]);
    res = maxim(res,c[n-2]);
    res = maxim(res,d[n+1]);
    res = maxim(res,d[n]);
    res = maxim(res,d[n-1]);
    printf("%d",res);

	return 0;
}