Cod sursa(job #132427)

Utilizator FlorianFlorian Marcu Florian Data 5 februarie 2008 20:10:55
Problema Oo Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 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");
long oo[122206],a[122206],n,s1,s2,s3;
int main()
  {
  fscanf(f,"%ld",&n);
  long i;
  for(i=1;i<=n;++i) fscanf(f,"%ld",&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-1;++i) a[i]=max(oo[i]+oo[i-1]+a[i-3],a[i-1]);
  s3=a[n-2];

   }

  else s1=oo[1];
  
  fprintf(g,"%ld\n",max(max(s1,s2),s3));

  return 0;
  }