Cod sursa(job #1559923)
| Utilizator | Data | 31 decembrie 2015 20:02:08 | |
|---|---|---|---|
| Problema | Oo | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
//http://www.infoarena.ro/problema/oo
#define MAX 100008
int g[MAX],dp[MAX];
long long rez(int mod,int n)
{ dp[mod+1]=g[mod]+g[mod+1];
for(int i=mod+2;i<=n;i++)
dp[i]=max(dp[i-1],dp[i-3]+g[i-1]+g[i]);
//am luat/iau
return dp[n];
}
int main()
{ long long ans=-1;
int n;
in>>n;
for(int i=1;i<=n;i++)
in>>g[i];
for(int i=1;i<=3;i++)
ans=max(ans,rez(i,n+i-2));
out<<ans;
return 0;
}
