Pagini recente » Cod sursa (job #1997825) | Cod sursa (job #486203) | Cod sursa (job #2830595) | Cod sursa (job #1463042) | Cod sursa (job #1135288)
#include<fstream>
#include<algorithm>
using namespace std;
int n, v[100003], d[100003], i, sol;
int maxim(int x, int y){
return (x>y?x:y);
}
ifstream in("oo.in");
ofstream out("oo.out");
int main(){
in>>n>>v[1]>>v[2];
if(n==2){
out<<v[1]+v[2];
}
if(n==3){
in>>v[3];
sort(v+1, v+4);
out<<v[2]+v[3];
}
if(n>=4){
d[2]=v[1]+v[2];
for(i=3; i<=n-1; i++){
in>>v[i];
d[i]=maxim(d[i-1], (v[i]+v[i-1]+d[i-3]));
}
in>>v[n];
sol=d[n-1];
d[0]=0; d[1]=0; d[2]=0;
d[3]=v[2]+v[3];
for(i=4; i<=n; i++){
d[i]=maxim(d[i-1], (v[i]+v[i-1]+d[i-3]));
}
if(d[n]>sol)
sol=d[n];
d[0]=0;
d[1]=v[1]+v[n];
d[2]=maxim(d[1], v[2]+v[1]);
for(i=3; i<=n-2; i++){
d[i]=maxim(d[i-1], (v[i]+v[i-1]+d[i-3]));
}
if(d[n-2]>sol)
sol=d[n-2];
out<<sol;
}
return 0;
}