Pagini recente » Cod sursa (job #894998) | Cod sursa (job #729439) | Cod sursa (job #1462936) | Cod sursa (job #1479769) | Cod sursa (job #1687396)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
#define nmax 100001
int a[nmax],l[nmax],poz[nmax];
int n,m,primul;
void subsir()
{ for(int i=n;i>=1;i--)
{l[i]=1;
poz[i]=0;
for(int j=i+1;j<=n;j++)
if(a[i]<a[j]&&l[i]<1+l[j])
{l[i]=l[j]+1;
poz[i]=j;}
if(m<l[i])
{m=l[i];
primul=i;}}}
int main(){
fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
subsir();
fout<<m<<"\n";
for(int i=primul;i>0;i=poz[i])
fout<<a[i]<<" ";
return 0;
}