Cod sursa(job #1528402)

Utilizator nnnmmmcioltan alex nnnmmm Data 19 noiembrie 2015 17:25:37
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstdio>
#include<algorithm>
int oo[100001];
int d[100001];
int main()
{
 freopen("oo.in","r",stdin);
 freopen("oo.out","w",stdout);
 int nr_oo;
 scanf("%d ",&nr_oo);
 for(int i=1;i<=nr_oo;i++)
     {
      scanf("%d ",&oo[i]);
     }
 int r1=0;
 for(int i=3;i<=nr_oo;i++)
     {
      d[i]=std::max(d[i-3]+oo[i]+oo[i-1],d[i-1]);
     }
 r1=d[nr_oo];
 int aux=oo[nr_oo];
 for(int i=nr_oo;i>=1;i--)
     oo[i]=oo[i-1];
 oo[1]=aux;
 int r2=0;
 for(int i=3;i<=nr_oo;i++)
     {
      d[i]=std::max(d[i-3]+oo[i]+oo[i-1],d[i-1]);
     }
 r2=d[nr_oo];
 aux=oo[nr_oo];
 for(int i=nr_oo;i>=1;i--)
     oo[i]=oo[i-1];
 oo[1]=aux;
 int r3=0;
 for(int i=3;i<=nr_oo;i++)
     {
      d[i]=std::max(d[i-3]+oo[i]+oo[i-1],d[i-1]);
     }
 r3=d[nr_oo];
 printf("%d ",std::max(std::max(r1,r2),r3));
 fclose(stdin);
 fclose(stdout);
 return 0;
}