Pagini recente » Cod sursa (job #1564492) | Cod sursa (job #339510) | Cod sursa (job #808960) | Cod sursa (job #1011991) | Cod sursa (job #2462862)
#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, int atr) {
d[st] = atr;
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()
{
citire();
int d1 = dinamica(1, n - 3, oua[0] + oua[n - 1]);
init();
int d2 = dinamica(2, n - 2, oua[0] + oua[1]);
init();
int d3 = dinamica(0, n - 4, oua[n - 2] + oua[n - 3]);
fout << max(d1, max(d2, d3)) << "\n";
return 0;
}