Cod sursa(job #1212729)

Utilizator DjokValeriu Motroi Djok Data 25 iulie 2014 18:22:33
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#include<algorithm>
#include<cstring>
using namespace std;

int a[100005],dp[100005],i,rs,n;

int main()
{
  ifstream cin("oo.in");
  ofstream cout("oo.out");
  
  cin>>n;
  for(i=1;i<=n;++i) cin>>a[i];
  
  for(i=2;i<=n-1;++i)
  if(i<3) dp[i]=max(dp[i-1],a[i]+a[i-1]),rs=max(rs,dp[i]);
  else dp[i]=max(dp[i-1],dp[i-3]+a[i]+a[i-1]),rs=max(rs,dp[i]);
  
  memset(dp,0,sizeof(dp));
  for(i=3;i<=n-3;++i)
  if(i<3) dp[i]=max(dp[i-1],a[i]+a[i-1]),rs=max(rs,dp[i]+a[n-1]+a[n]);
  else dp[i]=max(dp[i-1],dp[i-3]+a[i]+a[i-1]),rs=max(rs,dp[i]+a[n-1]+a[n]);
  
  memset(dp,0,sizeof(dp));
  for(i=4;i<=n-2;++i)
  if(i<3) dp[i]=max(dp[i-1],a[i]+a[i-1]),rs=max(rs,dp[i]+a[1]+a[n]);
  else dp[i]=max(dp[i-1],dp[i-3]+a[i]+a[i-1]),rs=max(rs,dp[i]+a[1]+a[n]);
  
  cout<<rs<<'\n';
    
 return 0;   
}