Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<algorithm>
- using namespace std;
- int N, stairs[301], dp[301];
- /*
- dp[N] : N번째 계단으로 도착할때 얻을 수 있는 최대 값
- */
- int solve() {
- int ret = 0;
- dp[1] = stairs[1];
- dp[2] = stairs[1] + stairs[2];
- for (int i = 3; i <= N; i++) {
- int a, b;
- a = b = 0;
- a = dp[i - 3] + stairs[i - 1] + stairs[i];
- b = dp[i - 2] + stairs[i];
- dp[i] = (a > b) ? a : b;
- }
- ret = dp[N];
- }
- int main() {
- //freopen("input.txt","r",stdin);
- scanf("%d", &N);
- for (int i = 1; i <= N; i++)
- scanf("%d",&stairs[i]);
- printf("%d",solve());
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement