Cod sursa(job #2566995)
| Utilizator | Data | 3 martie 2020 14:23:50 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 70 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <fstream>
#define N 100002
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[N],l[N],pred[N];
void afis(int nod)
{
if(nod)
{
afis(pred[nod]);
g<<v[nod]<<' ';
}
}
int main()
{
int n,imax;
f>>n;
f>>v[1];
l[1]=imax=1;
for(int i=2;i<=n;++i)
{
f>>v[i];
l[i]=1;
for(int j=1;j<i;++j)
if(v[j]<v[i] && l[j]+1>l[i])
{
l[i]=l[j]+1;
pred[i]=j;
}
if(l[imax]<l[i])
imax=i;
}
g<<l[imax]<<'\n';
afis(imax);
f.close();
g.close();
return 0;
}
