Pagini recente » Monitorul de evaluare | Cod sursa (job #3350576) | Cod sursa (job #3351281) | Cod sursa (job #1347696) | Cod sursa (job #2439824)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long v[100001],urm[100001],lg[100001],n,maxi,poz;
void afisare(int poz){
if(maxi){
maxi--;
afisare(urm[poz]);
fout<<v[poz]<<" ";
}
}
int main()
{
fin>>n;
urm[1]=-1;
for(int i=1; i<=n; i++)
{
fin>>v[i];
lg[i]=1;
}
for(int i=1; i<=n; i++)
for(int j=1; j<=i; j++)
if(v[i]>v[j])
if(lg[j]+1>lg[i])
{
urm[i]=j;
lg[i]++;
}
for(int i=1; i<=n; i++)
if(maxi<lg[i])
{
maxi=lg[i];
poz=i;
}
fout<<maxi<<'\n';
afisare(poz);
return 0;
}