#include #include using namespace std; long long mavdp[1001];//それまでの価値の合計の最大値 int v[1001]; int main() { int N; cin >> N; for (int i = 0; i < N; i++) cin >> v[i]; mavdp[0] = v[0]; mavdp[1] = max(v[1], v[0]); for (int i = 2; i < N; i++) { //最高の値についてだけ独立して考える //mavdp[i-2]=60,mavdp[i-1]=130,v[i]=80ならば食べた方がよい //mavdp[i-2]=40,mavdp[i-1]=130,v[i]=80ならば食べない方がよい mavdp[i] = max(mavdp[i - 2] + v[i], mavdp[i - 1]); } cout << mavdp[N - 1] << endl; }