Cod sursa(job #918154)

Utilizator apopeid13Apopeid Alejandro apopeid13 Data 18 martie 2013 17:48:54
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>
#include <cstring>
#define nmax 100005
 
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
 
int n,i,a[nmax],P[nmax],DP[nmax],A,B,C;
 
int main()
{
    f>>n;
    for(i=1;i<=n;i++) f>>a[i];
    a[n+1]=a[1];
    for(i=1;i<=n;i++) P[i]=a[i]+a[i+1];
 
    DP[1]=DP[2]=DP[3]=P[1];
    for(i=4;i<=n-2;i++) DP[i]=max(DP[i-1],DP[i-3]+P[i]);
    A=DP[n-2];
    memset(DP,0,sizeof(DP));
 
    DP[2]=DP[3]=DP[4]=P[2];
    for(i=5;i<=n-1;i++) DP[i]=max(DP[i-1],DP[i-3]+P[i]);
    B=DP[n-1];
    memset(DP,0,sizeof(DP));
 
    DP[3]=DP[4]=DP[5]=P[3];
    for(i=6;i<=n;i++) DP[i]=max(DP[i-1],DP[i-3]+P[i]);
    C=DP[n];
 
    g<<max(A,max(B,C));
    return 0;
}