Cod sursa(job #1611847)

Utilizator LizaSzabo Liza Liza Data 24 februarie 2016 14:58:44
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <iostream>
#include <cstring>
#define NMAX 100005
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int sp[NMAX], dp[NMAX],i,n,sol;
void read(){
fin>>n;
 for(i=1;i<=n;i++){
    fin>>sp[i];
 }
}
 void solv()
{
    sp[0]=n;
    sp[n+1]=sp[1];
    for(i=1;i<=n-2;i++){
       dp[i]=max(dp[i-3]+sp[i]+sp[i+1],dp[i-1]);
       sol=max(sol,dp[i]);
    }
    memset(dp,0,sizeof(dp));
    for(i=2;i<=n-1;i++){
       dp[i]=max(dp[i-3]+sp[i]+sp[i+1],dp[i-1]);
       sol=max(sol,dp[i]);
    }
    memset(dp,0,sizeof(dp));
    for(i=3;i<=n;i++){
       dp[i]=max(dp[i-3]+sp[i]+sp[i+1],dp[i-1]);
       sol=max(sol,dp[i]);
    }
}

int main()
{ read();
solv();
fout<<sol<<"\n";
    return 0;
}