Cod sursa(job #1219980)

Utilizator cojocarugabiReality cojocarugabi Data 16 august 2014 05:27:00
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
# include <fstream>
# include <cstring>
# define Max(a,b) (a>b ? a:b)
using namespace std;
ifstream fi("oo.in");
ofstream fo("oo.out");
const int nmax=100020;
int S[nmax],D[nmax],MaX;
void generate_solution(int p,int u)
{
    memset(D,0,sizeof(D));
    for (int i=p+2;i<=u;++i)
    {
        D[i]=Max(D[i-1],D[i-3]+S[i-1]+S[i-2]);
        MaX=Max(MaX,D[i]);
    }
}
int main(void)
{
    int n;
    fi>>n;
    for (int i=1;i<=n;++i) fi>>S[i];
    S[n+1]=S[1];S[n+2]=S[2];
    if (n==2) {fo<<S[1]+S[2]<<"\n";return 0;}
    MaX=-(1<<30);
    for (int i=1;i<=3;++i) generate_solution(i,n+i-1);
    fo<<MaX<<"\n";
    return 0;
}