Pagini recente » Cod sursa (job #640723) | Cod sursa (job #2039209) | Cod sursa (job #1607193) | Cod sursa (job #2148989) | Cod sursa (job #2462871)
#include <fstream>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int oua[100001], n, d[100001];
void citire() {
fin >> n;
for (int i = 0; i < n; ++i) {
fin >> oua[i];
}
}
void init() {
for (int i = 0; i < n; ++i) {
d[i] = 0;
}
}
int dinamica(int st, int fi) {
for (int i = st + 1; i <= fi; ++i) {
if (i < 3) {
d[i] = max(oua[i] + oua[i - 1], d[i - 1]);
}
else
d[i] = max(oua[i] + oua[i - 1] + d[i - 3], d[i - 1]);
}
return d[fi];
}
int main()
{
oua[n] = oua[0];
oua[n + 1] = oua[1];
citire();
int d1 = dinamica(3, n + 1);
init();
int d2 = dinamica(2, n);
init();
int d3 = dinamica(1, n - 1);
fout << max(d1, max(d2, d3)) << "\n";
return 0;
}