본문 바로가기
백준 알고리즘/다이나믹 프로그래밍

백준 11055번 C++

by paysmile 2019. 1. 21.

#include<iostream>

#include<cstring>

#include<algorithm>

using namespace std;


const int MAX = 1001;


int n;

int arr[MAX];

int minsum[MAX];


int calminsum() {

minsum[1] = arr[1];


for (int i = 2; i <= n; i++) {

int maxs = 0, index = 0;

for (int k = i - 1; k >= 1; k--) {

if (arr[k] < arr[i]) {

if (maxs < minsum[k]) {

maxs = minsum[k];

index = k;

}

}

}

minsum[i] = arr[i] + minsum[index];

}

int result = minsum[1];

for (int i = 2; i <= n; i++) {

result = max(result, minsum[i]);

}

return result;

}


int main(void) {

cin >> n;

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

cin >> arr[i];

}

cout << calminsum();

}

'백준 알고리즘 > 다이나믹 프로그래밍' 카테고리의 다른 글

백준 11722번 C++  (0) 2019.01.23
백준 11051번 C++  (0) 2019.01.21
백준 1699번 C++  (0) 2019.01.21
백준 11048번 C++  (0) 2019.01.18
백준 2167번 C++  (0) 2019.01.17