Pagini recente » Cod sursa (job #193462) | Cod sursa (job #3124434) | Cod sursa (job #2728022) | Cod sursa (job #1406643) | Cod sursa (job #2118302)
#include <fstream>
using namespace std;
ifstream fin ("oo.in");
ofstream fout ("oo.out");
int n, d[100005], v[100005], maxim1, maxim2, maxim3;
int main()
{
fin>>n;
for(int i = 1; i <= n; i++){
fin>>v[i];
}
d[1] = 0;
d[2] = 0;
d[3] = v[2] + v[3];
for(int i = 4; i <= n; i++){
if(d[i - 1] < v[i] + v[i - 1] + d[i - 3]){
d[i] = v[i] + v[i - 1] + d[i - 3];
}
else{
d[i] = d[i - 1];
}
}
maxim1 = d[n];
d[1] = v[1] + v[n];
d[2] = max(v[n]+v[1],v[1]+v[2]);
d[3] = max(d[2], v[3]+v[4]);
for(int i = 4; i < n; i++){
if(d[i - 1] < v[i] + v[i - 1] + d[i - 3]){
d[i] = v[i] + v[i - 1] + d[i - 3];
}
else{
d[i] = d[i - 1];
}
}
maxim2 = d[n - 2];
d[1] = 0;
d[2] = v[1] + v[2];
d[3] = max(v[1]+v[2],v[2]+v[3]);
for(int i = 4; i <= n; i++){
if(d[i - 1] < v[i] + v[i - 1] + d[i - 3]){
d[i] = v[i] + v[i - 1] + d[i - 3];
}
else{
d[i] = d[i - 1];
}
}
maxim3 = d[n - 1];
fout<<max(maxim1, max(maxim2, maxim3));
return 0;
}