Cod sursa(job #1237200)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 3 octombrie 2014 12:13:50
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<bits/stdc++.h>
using namespace std;

ifstream fin("oo.in");
ofstream fout("oo.out");

const int NMAX=100005;

int n,a[NMAX],dp[NMAX];

int main()
{
    int i,maximal=-1;
    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++)
        {
            dp[i]=max(a[i]+a[i-1]+dp[i-3],dp[i-1]);
            maximal=max(maximal,dp[i]);
        }
    for (i=2;i<=n+1;i++) dp[i]=0;
    for (i=3;i<=n;i++)
        {
            dp[i]=max(a[i]+a[i-1]+dp[i-3],dp[i-1]);
            maximal=max(maximal,dp[i]);
        }
    for (i=2;i<=n+1;i++) dp[i]=0;
    dp[2]=a[2]+a[n+1];
    maximal=max(maximal,dp[2]);
    for (i=3;i<n;i++)
        {
            dp[i]=max(a[i]+a[i-1]+dp[i-3],dp[i-1]);
            maximal=max(maximal,dp[i]);
        }
    fout<<maximal<<"\n";
    return 0;
}