Cod sursa(job #2157089)

Utilizator ovidius11Stiriu Ovidius ovidius11 Data 9 martie 2018 11:07:19
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int v[100005],dp[100005];
int calc(int st,int dr){
memset(dp,0,sizeof(dp));
int i;
for(i=st;i<=dr;i++)
dp[i]=max(dp[i-1],v[i]+v[i-1]+dp[i-3]);
return dp[dr];}
int main(){
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
int n,i,maxim=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
if (maxim<v[n-1]+v[n]+calc(3,n-3))
maxim=v[n-1]+v[n]+calc(3,n-3);
if (maxim<v[n]+v[1]+calc(4,n-2))
maxim=v[n]+v[1]+calc(4,n-2);
if (maxim<v[1]+v[2]+calc(5,n-1))
maxim=v[1]+v[2]+calc(5,n-1);
if (maxim<calc(3,n-1))
maxim=calc(3,n-1);
printf("%d\n",maxim);
return 0;}