Cod sursa(job #1714163)
Utilizator | Ana Baltaretu anisca22 | Data | 7 iunie 2016 18:14:29 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 45 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.83 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long v[100001],lg[100001],a[100001];
int n,rez,pf,i,j;
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
lg[i]=1;
fin>>v[i];
for(j=1;j<i;j++)
{
if(v[i]>v[j] && lg[i]<lg[j]+1)
lg[i]=lg[j]+1;
if(lg[i]>rez)
{rez=lg[i];
pf=i;
}
}
}
fout<<rez<<endl;
int nr=v[pf];
a[1]=nr;
int j;
for(i=pf,j=2;i>0;i--)
if(v[i]<nr){
nr=v[i];
a[j]=v[i];
j++;
}
for(j=j-1;j>0;j--)
fout<<a[j]<<" ";
return 0;
}