Cod sursa(job #2101272)

Utilizator ApolodorTudor Fernea Apolodor Data 7 ianuarie 2018 01:18:42
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

int n,i,maxim=-1;
int v[100001],dp[1000001];

ifstream fi("oo.in");
ofstream fo("oo.out");

void oo (int a, int b)
{
    dp[a+1]=v[a]+v[a+1];
    dp[a]=0;
    dp[a-1]=0;
    for (i=a+2;i<=b;i++) {
        if (dp[i-3]+v[i]+v[i-1]>dp[i-1]) {
            dp[i]=dp[i-3]+v[i]+v[i-1];
        }
        else {
            dp[i]=dp[i-1];
        }
    }
}

int main()
{
    fi>>n;
    for(i=1;i<=n;i++)
        fi>>v[i];
    oo(1,n-1);
    maxim=max(maxim,dp[n-1]);
    oo(2,n);
    maxim=max(maxim,dp[n]);
    oo(2,n-1);
    maxim=max(maxim,dp[n-1]);
    oo(3,n-2);
    maxim=max(maxim,dp[n-2]+v[1]+v[n]);
    fo<<maxim;
}