Cod sursa(job #1166753)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 3 aprilie 2014 19:55:56
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>

using namespace std;

ifstream fin( "oo.in" );
ofstream fout( "oo.out" );

const int nmax = 100000;
int sol, n;
int v[ nmax + 2 ], d[ nmax + 1 ];

void rez( int f ) {
    int l;
    l = n - 2 + f;
    d[ f ] = 0; d[ f + 1 ] = v[ f ] + v[ f + 1 ];
    for( int i = f + 2; i <= l; ++ i ) {
        d[ i ] = max( d[ i-1 ], d[ i-3 ] + v[i] + v[i-1] );
    }
    if ( sol < d[ l ] ) {
        sol = d[ l ];
    }
}
int main()
{
    fin>>n;
    for( int i = 1; i <= n; ++ i ) {
        fin>>v[ i ];
    }
    v[n + 1] = v[ 1 ];
    sol = 0;
    for( int i = 1; i < 4; ++ i ) {
        rez( i );
    }
    fout<<sol<<'\n';
    fin.close();
    fout.close();
    return 0;
}