Pagini recente » Cod sursa (job #1306487) | Cod sursa (job #998025) | Cod sursa (job #2246775) | Cod sursa (job #1644391) | Cod sursa (job #1219980)
# include <fstream>
# include <cstring>
# define Max(a,b) (a>b ? a:b)
using namespace std;
ifstream fi("oo.in");
ofstream fo("oo.out");
const int nmax=100020;
int S[nmax],D[nmax],MaX;
void generate_solution(int p,int u)
{
memset(D,0,sizeof(D));
for (int i=p+2;i<=u;++i)
{
D[i]=Max(D[i-1],D[i-3]+S[i-1]+S[i-2]);
MaX=Max(MaX,D[i]);
}
}
int main(void)
{
int n;
fi>>n;
for (int i=1;i<=n;++i) fi>>S[i];
S[n+1]=S[1];S[n+2]=S[2];
if (n==2) {fo<<S[1]+S[2]<<"\n";return 0;}
MaX=-(1<<30);
for (int i=1;i<=3;++i) generate_solution(i,n+i-1);
fo<<MaX<<"\n";
return 0;
}