Pagini recente » Cod sursa (job #2738027) | Cod sursa (job #2381224) | Cod sursa (job #3177634) | Cod sursa (job #881459) | Cod sursa (job #1770787)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
long long n,i,v[100003],d1[100003],d2[100003],d3[100003],maxim,sol,s1,s2,s3,s4;
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>v[i];
}
if(n==4){
s1=v[1]+v[2];
s2=v[2]+v[3];
s3=v[3]+v[4];
s4=v[4]+v[1];
sol=max(s1,s2);
sol=max(sol,s3);
sol=max(sol,s4);
fout<<sol;
return 0;
}
if(n==3){
s1=v[1]+v[2];
s2=v[2]+v[3];
s3=v[1]+v[3];
sol=max(s1,s2);
sol=max(sol,s3);
}
if(n==2){
fout<<v[1]+v[2];
}
d1[1]=v[n]+v[1];
d2[2]=v[1]+v[2];
d3[3]=v[n-1]+v[n];
for(i=3;i<=n-2;i++){
d1[i]=max(d1[i-1],d1[i-3]+v[i]+v[i-1]);
}
for(i=4;i<=n-1;i++){
d2[i]=max(d2[i-1],d2[i-3]+v[i]+v[i-1]);
}
for(i=2;i<=n-3;i++){
d3[i]=max(d3[i-1],d3[i-3]+v[i]+v[i-1]);
}
maxim=max(d1[n-2],d2[n-1]);
maxim=max(maxim,d3[n-3]);
fout<<maxim;
return 0;
}