Cod sursa(job #3232129)

Utilizator IonicaDavidIonica David IonicaDavid Data 29 mai 2024 00:58:54
Problema Oo Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.4 kb
#include <iostream>
#include <fstream>
using namespace std;
unsigned int maxi,v[100001],dp1[100001][2],dp2[100001][2],dp3[100001][2],n,e1,e2,e3,i,j,aux;


void citire()
{

}
int main()
{
    ifstream f("oo.in");
    ofstream g("oo.out");
    f>>n;
    for(int i=1; i<=n; ++i)
        f>>v[i];
    e1=v[1]+v[n];
    e2=v[1]+v[2];
    e3=v[2]+v[3];




    dp1[1][1]=e1;
    i=2;
    for(i; i<=n-1; ++i)
        for(j=0; j<=1; ++j)
        {
            if(j==1)
                dp1[i][j]=dp1[i-2][0]+v[i-1]+v[i];
            else
                dp1[i][j]=max(dp1[i-1][1],dp1[i-1][0]);
        }
    if(maxi<max(dp1[n-1][1],dp1[n-1][0]))
        maxi=max(dp1[n-1][1],dp1[n-1][0]);

    dp2[2][1]=e2;
    i=3;
    for(i; i<=n; ++i)
        for(j=0; j<=1; ++j)
        {
            if(j==1)

                dp2[i][j]=dp2[i-2][0]+v[i-1]+v[i];
            else
                dp2[i][j]=max(dp2[i-1][1],dp2[i-1][0]);
        }
    if(maxi<max(dp2[n][1],dp2[n][0]))
        maxi=max(dp2[n][1],dp2[n][0]);

    dp3[3][1]=e3;
    i=4;
    for(i; i<=n; ++i)
        for(j=0; j<=1; ++j)
        {
            if(j==1)
                dp3[i][j]=dp3[i-2][0]+v[i-1]+v[i];
            else
                dp3[i][j]=max(dp3[i-1][1],dp3[i-1][0]);
        }
    if(maxi<max(dp3[n][1],dp3[n][0]))
        maxi=max(dp3[n][1],dp3[n][0]);







    g<<maxi;
    return 0;
}