Pagini recente » Cod sursa (job #356373) | Cod sursa (job #1616970) | Cod sursa (job #3179472) | Cod sursa (job #2527391) | Cod sursa (job #772355)
Cod sursa(job #772355)
#include<fstream>
#define max(a,b) (a>b)?a:b
using namespace std;
int n,i,v[100005],sol[100005],sol2[100005],sol3[100005],k,k2,uz[100005],maxx;
int main()
{
ifstream f("oo.in");ofstream g("oo.out");
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
for(i=3;i<=n;i++)
{
k=i-3;
k2=i-1;
if(k<1)k=n+k;
if(k2<1)k2=n+k2;
sol[i]=max(sol[k]+v[i]+v[k2],sol[i-1]);
}
for(i=1;i<=n-2;i++)
{
k=i-3;
k2=i-1;
if(k<1)k=n+k;
if(k2<1)k2=n+k2;
sol2[i]=max(sol2[k]+v[i]+v[k2],sol2[i-1]);
}
for(i=2;i<=n-1;i++)
{
k=i-3;
k2=i-1;
if(k<1)k=n+k;
if(k2<1)k2=n+k2;
sol3[i]=max(sol3[k]+v[i]+v[k2],sol3[i-1]);
}
maxx=sol[n];
if(sol2[n-2]>maxx)maxx=sol2[n-2];
if(sol3[n-1]>maxx)maxx=sol3[n-1];
g<<maxx;
f.close();g.close();
return 0;}