Cod sursa(job #1237190)
| Utilizator | Data | 3 octombrie 2014 11:56:31 | |
|---|---|---|---|
| Problema | Oo | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
const int NMAX=100005;
int n,a[NMAX],dp1[NMAX],dp2[NMAX];
int main()
{
int i;
fin>>n;
for (i=2;i<=n+1;i++) fin>>a[i];
if (n==2) {cout<<a[1]+a[2]<<"\n";return 0;}
for (i=4;i<=n+1;i++)
dp1[i]=max(a[i]+a[i-1]+dp1[i-3],dp1[i-1]);
dp2[2]=a[2]+a[n+1];
for (i=3;i<=n;i++)
dp2[i]=max(a[i]+a[i-1]+dp2[i-3],dp2[i-1]);
fout<<max(dp2[n],dp1[n+1])<<"\n";
return 0;
}
