Pagini recente » Cod sursa (job #4567) | Cod sursa (job #426448) | Cod sursa (job #3291298) | Cod sursa (job #873075) | Cod sursa (job #2208758)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in") ;
ofstream g("scmax.out") ;
long long a[100001],l[100001],lmax,n ;
void lm()
{
int i,maxi,j ;
lmax=0 ;
f>>n ;
for(i=1;i<=n;i++) f>>a[i] ;
l[n]=1 ;
for(i=n-1;i>=1;i--)
{
maxi=0 ;
for(j=i+1;j<=n;j++) if(l[j]>maxi&&a[i]<a[j]) maxi=l[j] ;
l[i]=maxi+1 ;
if(l[i]>lmax) lmax=l[i] ;
}
g<<lmax ;
}
void drum()
{
int t, p ;
t=0 ;
p=1 ;
while(lmax>0)
{
while(l[p]!=lmax||a[t]>a[p]) p++ ;
g<<a[p]<<" " ;
lmax-- ;
t=p ;
}
}
int main()
{
lm() ;
g<<endl ;
drum() ;
return 0;
}