Submission

Status:

[PPPPTSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: theem1502

Problemset: ซื้อขายหุ้นซีเค

Language: cpp

Time: 1.095 second

Submitted On: 2026-02-21 21:25:27

#include <bits/stdc++.h>
using namespace std;
    int num;
    int thearray[100000], dp[100000];
int recursion(int currentx) {
     if (currentx == num) {
        return 0;
     }

     if (dp[currentx] != 0) {
        return dp[currentx];
     }
    int maxval = 0;
    int anotherval = recursion(currentx + 1);

     for (int i = currentx + 1; i <= num; i++) {
            if (thearray[i] <= thearray[currentx]) {
                continue;
            }

            if (i == num) {
                continue;
            }
            int val = 0;
            if (i < num) {
        val = recursion(i) + thearray[i] - thearray[currentx];
            }
            else {
                val = recursion(i);
            }
        if (val > maxval) {maxval = val;}
     }
     return dp[currentx] =  max(maxval, anotherval);



}



int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> num;

    for (int i = 0; i < num; i++) {
        cin >> thearray[i];
    }
    cout << recursion(0);



}