Pagini recente » Cod sursa (job #204445) | Cod sursa (job #742569) | Cod sursa (job #2006998) | Cod sursa (job #1194791) | Cod sursa (job #1567143)
#include<fstream>
#include<cstring>
#define NMax 100007
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int N,Sol;
int DP[NMax],Sec[NMax];
void Read()
{
fin>>N;
for(int i=1;i<=N;++i) fin>>Sec[i];
}
void Solve()
{
int i;
Sec[0]=Sec[N];
Sec[N+1]=Sec[1];
for(i=1;i<=N-2;++i)
{
DP[i]=max(DP[i-3]+Sec[i]+Sec[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]+Sec[i]+Sec[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]+Sec[i]+Sec[i+1],DP[i-1]);
Sol=max(Sol,DP[i]);
}
}
void Print()
{
fout<<Sol<<"\n";
}
int main()
{
Read();
Solve();
Print();
fin.close();
fout.close();
return 0;
}