Cod sursa(job #132419)

Utilizator FlorianFlorian Marcu Florian Data 5 februarie 2008 19:59:46
Problema Oo Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#include<string.h>
#define max(a,b) a>b?a:b
FILE*f=fopen("oo.in","r");
FILE*g=fopen("oo.out","w");
int oo[100006],a[100006],n,s1,s2,s3;
int main()
  {
  fscanf(f,"%d",&n);
  int i;
  for(i=1;i<=n;++i) fscanf(f,"%d",&oo[i]);
  if(n!=2) {
  a[2]=oo[1]+oo[2];
  for(i=3;i<=n;++i) a[i]=max(oo[i]+oo[i-1]+a[i-3],a[i-1]);
  s1=a[n-1];
  memset(a,0,sizeof(a));
  for(i=3;i<=n;++i)
    a[i]=max(oo[i]+oo[i-1]+a[i-3],a[i-1]);
  s2=a[n];
  memset(a,0,sizeof(a));
  a[1]=a[2]=oo[1]+oo[n];
  for(i=3;i<n;++i) a[i]=max(oo[i]+oo[i-1]+a[i-3],a[i-1]);
  s3=a[n-2];
  }
  else s1=oo[1]+oo[2];
  
  fprintf(g,"%d\n",max(max(s1,s2),s3));

  return 0;
  }