Cod sursa(job #2040434)

Utilizator razvan171514Razvan Mihai razvan171514 Data 15 octombrie 2017 19:49:36
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#define lim 100003
using namespace std;
ifstream f ("oo.in");
ofstream g ("oo.out");
int n,x,v[lim],v1[lim];
void read ()
{
    f>>n;
    for (int i=1;i<=n;++i)
        f>>v[i];
}
int formatare_1 ()
{
    v1[2]=v[1]+v[2];
    v1[3]=v1[2];
    v1[4]=v1[2];
    for (int i=5;i<n;++i)
        v1[i]=max(v1[i-1],v[i]+v[i-1]+v1[i-3]);
    return v1[n-1];
}
int formatare_2 ()
{
    v1[0]=0;
    v1[1]=0;
    v1[2]=0;
    for (int i=3;i<=n;++i)
        v1[i]=max(v1[i-1],v[i]+v[i-1]+v1[i-3]);
    return v1[n];
}
int formatare_3 ()
{
    v1[1]=v[1]+v[n];
    v1[2]=v1[1];
    v1[3]=v1[1];
    for (int i=4;i<n-1;++i)
        v1[i]=max(v1[i-1],v[i]+v[i-1]+v1[i-3]);
    return v1[n-2];
}
int main()
{
    read();
    int result=max(formatare_1(),formatare_2());
    result=max(result,formatare_3());
    g<<result;
    return 0;
}