Pagini recente » Cod sursa (job #1297325) | Cod sursa (job #895937) | Cod sursa (job #1728070) | Cod sursa (job #1255779) | Cod sursa (job #2043915)
#include <iostream>
#include <fstream>
#define xx 100005
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int length, v[xx];
void makeZero(int arr[100005]);
int s[xx];
int makeSum(int startPoz, int endPoz) {
makeZero(s);
s[startPoz + 1] = v[startPoz] + v[startPoz + 1];
// cout<<s[startPoz + 1]<<' ';
for (int iter = startPoz + 1; iter < endPoz; ++iter) {
s[iter] = max(s[iter - 1], s[iter - 3] + v[iter - 1] + v[iter]);
}
return s[endPoz - 1];
}
void makeZero(int arr[100005]) {
for (int iter = 0; iter <= length; iter++)
arr[iter] = 0;
}
int main() {
fin >> length;
for (int iter = 0; iter < length; ++iter) {
fin >> v[iter];
// cout<<v[iter]<<' ';
}
v[length] = v[0];
cout << max(makeSum(0, length - 1), max(makeSum(1, length), makeSum(2, length )));
return 0;
}