Pagini recente » Cod sursa (job #2495069) | Cod sursa (job #136529) | Cod sursa (job #2250117) | Cod sursa (job #663628) | Cod sursa (job #1521496)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,v[100005],s[100005],p[100005];
void afisare( int maxim , int poz ){
if ( maxim==0 )
return;
afisare(maxim-1,p[poz]);
fout<<v[poz]<<' ';
return;
}
void subsir( int &maxim , int &poz ){
s[1]=1;
for ( int i=2 ; i<=n ; i++ ){
maxim=0;
for ( int j=1 ; j<=i ; j++ ){
if ( v[i]>v[j] && s[j]>maxim ){
maxim=s[j];
p[i]=j;
}
}
s[i]=1+maxim;
}
maxim=0;
for ( int i=1 ; i<=n ; i++ )
if ( s[i] > maxim ){
maxim=s[i];
poz=i;
}
}
int main()
{
int maxim,poz;
fin>>n;
for ( int i=1 ; i<=n ; i++ )
fin>>v[i];
subsir(maxim,poz);
fout<<maxim<<'\n';
afisare(maxim,poz);
}