Cod sursa(job #2123456)

Utilizator eduardvintilaVintila Eduard eduardvintila Data 6 februarie 2018 11:47:18
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <algorithm>



using namespace std;


ifstream f("oo.in");
ofstream g("oo.out");

int main()
{
    int v[100005],dp[100005],i,n,sol1,sol2,sol3;
    f>>n;
    for (i=1;i<=n;i++)
        f>>v[i];

    dp[1]=0;
    dp[2]=v[1]+v[2];
    dp[3]=max(dp[2],v[2]+v[3]);
    for (i=4;i<=n;i++)
        dp[i]=max(dp[i-1],v[i-1]+v[i]+dp[i-3]);
    sol1=dp[n-1];

    dp[1]=v[1]+v[n];
    dp[2]=max(dp[1],v[1]+v[2]);
    dp[3]=max(v[3]+v[4],dp[2]);
    for (i=4;i<=n;i++)
        dp[i]=max(dp[i-1],v[i-1]+v[i]+dp[i-3]);
    sol2=dp[n-2];

    dp[1]=0;
    dp[2]=0;
    dp[3]=v[2]+v[3];
    for (i=4;i<=n;i++)
        dp[i]=max(dp[i-1],v[i-1]+v[i]+dp[i-3]);
    sol3=dp[n];

    g<<max(max(sol1,sol2),sol3);
    return 0;
}