Cod sursa(job #2965543)
| Utilizator | Data | 15 ianuarie 2023 15:50:16 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 70 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n;
int d[100005];
int v[100005];
int t[100005];
int maxim;
int pp;
void rc(int poz)
{
if(poz!=0)
{
rc(t[poz]);
fout<<v[poz]<<' ';
}
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>v[i];
d[i]=1;
for(int j=i-1;j>=1;j--)
{
if(v[i]>v[j] && d[j]+1>d[i])
{
t[i]=j;
d[i]=d[j]+1;
}
}
if(d[i]>maxim)
{
maxim=d[i];
pp=i;
}
}
fout<<maxim<<'\n';
rc(pp);
}
