반응형
#include <iostream>
#include <algorithm>
using namespace std;
//A[i] = 입력
//D[i] = i번쨰 포도주를 마셨을 때 최대
// i번째 포도주를 고르지 않았을 때:D[i-1]
//1번 연속으로 마셨을 때:D[i-2] + A[i]
//2번 연속으로 마셨을 때: D[i-3]+A[i-1]+A[i]
int A[10001], D[10001];
int main() {
int n, ans=0;
cin >> n;
for (int i = 1; i <= n; i++)
cin >> A[i];
D[1] = A[1];
D[2] = A[1] + A[2];
for (int i = 3; i <= n; i++)
{
D[i] = max(D[i - 3] + A[i - 1] + A[i], max(D[i - 1], D[i - 2] + A[i]));
}
cout << D[n] << '\n';
}
'Algorithm' 카테고리의 다른 글
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 9461번:파도반 수열 답 (0) | 2017.02.01 |
---|---|
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 11048번:이동하기 답 (0) | 2017.01.31 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 11722번:가장 긴 감소하는 부분 수열 답 (0) | 2017.01.29 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 9465번:스티커 답 (0) | 2017.01.27 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 11053번:가장 긴 증가하는 부분 수열 답 (0) | 2017.01.27 |