Mai intai trebuie sa te autentifici.
Cod sursa(job #2462870)
Utilizator | Data | 27 septembrie 2019 22:34:44 | |
---|---|---|---|
Problema | Oo | Scor | 30 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.79 kb |
#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];
citire();
int d1 = dinamica(3, n - 2);
init();
int d2 = dinamica(2, n);
init();
int d3 = dinamica(1, n - 1);
fout << max(d1, max(d2, d3)) << "\n";
return 0;
}