https://www.acmicpc.net/problem/2579


#include

#include

using namespace std;


int n;

int stair[301];

int dp[301];


int main(void) {

cin >> n;

for(int i = 1; i <= n; i++) 

cin >> stair[i];


dp[n] = stair[n];

dp[n-1] = max(stair[n] + stair[n-1], stair[n-1]);

dp[n-2] = max(stair[n] + stair[n-2], stair[n] + stair[n-1]);


for(int i = n-3; i >= 0; i--) {

dp[i] = max(dp[i+2] + stair[i], dp[i+3] + stair[i+1] + stair[i]);

}


cout <

}


다른사람 코드 보니까 진짜 거의 똑같던데 반례가 뭐길래 TC를 통과 못하는걸까요