Cod sursa(job #1450059)

Utilizator SilviuIIon Silviu SilviuI Data 11 iunie 2015 12:06:54
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <cstring>
#include <stdlib.h>
#include <time.h>
#include <bitset>
#include <string>
#include <vector>
#include <math.h>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <limits.h>
#include <algorithm>
#include <deque>
#define inf 0x3f3f3f3f
#define nmax 100010
using namespace std;
int n,i,j,t[nmax],maxx,dp[nmax];
inline int max(int a,int b)
{
    if (a>b) return a; else return b;
}
int main(){
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",&t[i]),dp[i]=-inf;
dp[0]=0; t[n+1]=t[1]; maxx=-inf;
for (i=1;i<=3;i++){
    dp[i]=0;
    dp[i+1]=t[i+1]+t[i];
    for (j=2+i;j<=n-2+i;j++)
        dp[j]=max(dp[j-1],dp[j-3]+t[j]+t[j-1]);
    maxx=max(maxx,dp[n-2+i]);
}
printf("%d",maxx);
return 0;
}