이전 포스팅 가장 긴 증가 부분 순열과 아주우우우 약간 다른 문제 코드도 아주 약간만 바꾸면 됬다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <algorithm>
using namespace std;
long long d[1050];
int seq[1050];
 
int main()
{
    int input = 0;
    cin >> input;
    for (int i = 1; i <= input; ++i)
    {
        cin >> seq[i];
    }
    for (int i = 1;i <= input ; ++i)
        d[i] = seq[i];
    for (int i = 2; i <= input; ++i)
    {
        for (int j = 1; j < i; ++j)
        {
            if (seq[i] > seq[i - j])
                d[i] = max(d[i], d[i - j] + seq[i]);
        }
    }
    long long ans = 0;
    for (int i = 1; i <= input; ++i)
        ans = max(ans, d[i]);
    cout << ans;
    return 0;
}
cs


+ Recent posts