Cod sursa(job #3293313)
| Utilizator | Data | 11 aprilie 2025 14:24:39 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 35 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include<iostream>
#include<fstream>
using namespace std;
int v[100010];
int dp(int n, int* a){
int* ls = (int*) malloc(n*sizeof(int));
ls[0]=1;
int retVal=1;
for(int i=1;i<n;i++){
int m=0;
for(int j=0;j<i;j++){
if(a[j]<a[i]){
m=max(m,ls[j]);
}
}
m++;
ls[i]=m;
retVal = max(retVal, m);
}
return retVal;
}
int main(){
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n;
fin>>n;
for(int i=0;i<n;i++){
fin>>v[i];
}
// cout<<"gata\n";
// cout.flush();
fout<<dp(n,v);
fin.close();
fout.close();
}