Pagini recente » Cod sursa (job #3314114) | Autentificare | Cod sursa (job #1333887) | Cod sursa (job #942088) | Cod sursa (job #3314126)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int v[100005];
int f[100005];
int tr[100005];
vector <int> rez;
int main()
{
int n, mx=0, cj, mxx=0, poz;
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>v[i];
}
for(int i=1; i<=n; i++)
{
cj=mx=0;
for(int j=i-1; j>=0; j--)
{
if(v[j]<v[i])
{
if(mx<f[j])
{
mx=f[j];
cj=j;
}
}
}
tr[i]=cj;
f[i]=mx+1;
if(f[i]>mxx)
{
poz=i;
mxx=f[i];
}
}
cout<<mxx<<'\n';
while(poz>0)
{
rez.push_back(v[poz]);
poz=tr[poz];
}
for(int i=rez.size()-1; i>=0; i--)
{
cout<<rez[i]<<" ";
}
return 0;
}