Pagini recente » Cod sursa (job #587208) | Cod sursa (job #102923) | Cod sursa (job #1676348) | Cod sursa (job #1354712) | Cod sursa (job #2122570)
#include <fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
const int NMAX = 100005;
int N, sol;
int V[NMAX], DP[NMAX];
int main(){
in >> N;
for(int i = 1; i <= N; ++i)
in >> V[i];
DP[3] = DP[2] = V[1] + V[2];
for(int i = 4; i <= N - 1; ++i)
DP[i] = max(DP[i - 1], V[i] + V[i - 1] + DP[i - 3]);
sol = DP[N - 1];
DP[1] = DP[2] = 0;
DP[3] = V[2] + V[3];
for(int i = 4; i <= N; ++i)
DP[i] = max(DP[i - 1], V[i] + V[i - 1] + DP[i - 3]);
sol = max(sol, DP[N]);
DP[1] = DP[2] = DP[3] = 0;
for(int i = 4; i <= N; ++i)
DP[i] = max(DP[i - 1], V[i] + V[i - 1] + DP[i - 3]);
sol = max(sol, max(DP[N], V[1] + V[N] + DP[N - 2]));
out << sol << "\n";
return 0;
}