Cod sursa(job #1022644)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 5 noiembrie 2013 20:19:54
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <algorithm>

using namespace std;

int N,a[100005],d[5][100005];

inline void Read()
{
    int i;
    ifstream fin("oo.in");
    fin>>N;
    for(i=1;i<=N;i++)
        fin>>a[i];
    fin.close();
}

inline void Solve()
{
    int i;
    d[0][2]=a[1]+a[2];
    d[1][3]=a[2]+a[3];
    d[2][4]=a[3]+a[4];
    for(i=3;i<N;i++)
        d[0][i]=max(d[0][i-1], d[0][i-3]+a[i]+a[i-1]);
    d[0][N]=d[0][N-1];

    for(i=4;i<=N;i++)
        d[1][i]=max(d[1][i-1], d[1][i-3]+a[i]+a[i-1]);

    a[N+1]=a[1];
    for(i=5;i<=N+1;i++)
        d[2][i]=max(d[2][i-1], d[2][i-3]+a[i]+a[i-1]);
    d[2][N]=d[2][N+1];

}

inline void Write()
{
    ofstream fout("oo.out");
    fout<<max(max(d[0][N],d[1][N]), d[2][N])<<"\n";
    fout.close();
}

int main()
{
    Read();
    Solve();
    Write();
    return 0;
}