Cod sursa(job #1099547)

Utilizator gerd13David Gergely gerd13 Data 5 februarie 2014 22:14:07
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <vector>

using namespace std;

const int NMAX =10005 ;
const int INF = 0x3f3f3f3f;

ifstream cin("oo.in") ;
ofstream cout("oo.out") ;
int N ;
int V[NMAX], D[NMAX];
inline int max(int a, int b) { if(a > b) return a ; else return b; }
int Sol = - INF;

inline void citire()
{

    cin >> N ;
    for(int i = 1 ; i <= N; ++ i)
        cin >> V[i] ;
}
inline void rezolvare(int x, int y)
{
    D[x] = 0 ;
    D[x + 1] = V[x] + V[x+1] ;
    for(int i = x + 2 ; i <= y ; ++ i)
        D[i] = max(D[i-1], D[i - 3] + V[i - 1] + V[i]);

    Sol = max(Sol, D[y]);
}
inline void afisare()
{

    cout << Sol << '\n' ;
}
int main()
{
    citire();
    V[N + 1] = V[1] ;

    rezolvare(1, N-1);
    rezolvare(2, N) ;
    rezolvare(3, N+1) ;

    afisare();


return 0 ;
}