Cod sursa(job #3288956)

Utilizator Allie28Radu Alesia Allie28 Data 24 martie 2025 22:35:32
Problema Subsir 2 Scor 24
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

#define ll long long

using namespace std;

ifstream fin("subsir2.in");
ofstream fout("subsir2.out");

const int LMAX = 5005;
const int INF = 0x3f3f3f3f;
const ll MOD = 1000000007;

//dp[i] --> lungimea subsirului ... pana la pozitia i
int dp[LMAX], v[LMAX];

int main() {
    int n, i, j, x;
    fin>>n;
    for (i = 1; i <= n; i++) {
        fin>>v[i];
    }
    for (i = 1; i <= n; i++) {
        dp[i] = n + 1;
        x = -INF;
        j = i - 1;
        while(j > 0) {
            if (v[j] > x && v[j] < v[i]) {
                x = v[j];
                dp[i] = min(dp[i], dp[j] + 1);
            }
            j--;
        }
        if (x == -INF) dp[i] = 1;
    }
    fout<<dp[n];


    fin.close();
    fout.close();
    return 0;
}