Cod sursa(job #1712503)

Utilizator cubaLuceafarul cuba Data 2 iunie 2016 22:57:15
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
const int NMAX=100003;
int a[NMAX],dp[NMAX];
int main()
{
    int n,sol=-1;
    f>>n;
    for(int i=1;i<=n;i++)
        f>>a[i];
    a[0]=a[n];
    a[n+1]=a[1];
    for(int i=1;i<=n-2;i++)
        dp[i]=max(dp[i-1],dp[i-3]+a[i]+a[i+1]);
    if(dp[n-2]>sol)
        sol=dp[n-2];
    for(int i=1;i<=n;i++)
        dp[i]=0;
    for(int i=2;i<=n-1;i++)
        dp[i]=max(dp[i-1],dp[i-3]+a[i]+a[i+1]);
    if(dp[n-1]>sol)
        sol=dp[n-1];
    for(int i=1;i<=n;i++)
        dp[i]=0;
    for(int i=3;i<=n;i++)
        dp[i]=max(dp[i-1],dp[i-3]+a[i]+a[i+1]);
    if(dp[n]>sol)
        sol=dp[n];
    g<<sol<<"\n";
    return 0;
}