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