Cod sursa(job #3339140)

Utilizator Vcitor09Solcanu Victor Vcitor09 Data 6 februarie 2026 16:08:14
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <cstdio>
using namespace std;
int n,m,p,v[105],dp[105][105],mini=1e9,maxi=1;
//dp[i][j] valorarea cea mai mica cu care se termina un subsir crescator de lungime j din primele i elemente
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    for(int i=1;i<=n;++i) cin>>v[i];
     for(int i=1;i<=n;++i){
        for(int j=1;j<=n;++j) dp[i][j]=1e9;
    }
    for(int i=1;i<=n;++i){
        mini=min(mini,v[i]);
        dp[i][1]=mini;
        //cout<<dp[i][1]<<" ";
    }
    for(int i=1;i<=n;++i){
        for(int j=2;j<=i;++j){
            bool ok=0;
            if(i==3 && j==2) cout<<dp[i-1][j-1]<< ' '<<v[i];
            if(v[i]>dp[i-1][j-1]) 
                dp[i][j]=min(dp[i][j],v[i]),ok=1, cout<<ok<<" ";
            dp[i][j]=min(dp[i][j],dp[i-1][j]);
            if(dp[i][j]!=1e9 && dp[i][j]!=0){
                maxi=max(maxi,j);
            }
           // cout<<dp[i][j]<<' ';
        }
        cout<<'\n';
    }
    cout<<maxi;
    return 0;
}