Cod sursa(job #2474537)

Utilizator marinaoprOprea Marina marinaopr Data 15 octombrie 2019 14:42:12
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <iostream>

#define NMAX 100005

using namespace std;

FILE *fin = fopen("oo.in", "r");
FILE *fout = fopen("oo.out", "w");

int n,a[NMAX],i,ans;

int solve(int left, int right)
{
    int i,dp[NMAX];

    for(i=left; i<=right; ++i)
        dp[i] = 0;

    dp[left+1] = a[left]+a[left+1];
    for(i=left+2; i<=right; ++i)
        dp[i] = max(dp[i-1], dp[i-3]+a[i-1]+a[i]);

    return dp[right];
}

int main()
{
    fscanf(fin, "%d", &n);
    for(i=1; i<=n; ++i)
        fscanf(fin, "%d", &a[i]);

    a[n+1] = a[1];

    ans = max(ans, solve(1, n-1));
    ans = max(ans, solve(2, n));
    ans = max(ans, solve(3, n+1));

    fprintf(fout, "%d", ans);

    fclose(fin);
    fclose(fout);
    return 0;
}