Pagini recente » Cod sursa (job #1688186) | Cod sursa (job #2367700) | Cod sursa (job #2867335) | Cod sursa (job #820953) | Cod sursa (job #528254)
Cod sursa(job #528254)
#include<fstream>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
long long n, v[100004],b[100005],i,pozitie,maxx;
void citeste ()
{
f>>n;
for ( i=1; i<=n; i++ )
f>>v[i];
}
void calculeaza()
{
int i,j,p=0;
b[n]=1;
for ( i=n-1; i>=1; i-- )
{
p=0;
for ( j=i+1; j<=n; j++ )
if ( v[i]<v[j] )
if ( b[j]>p )
p=b[j];
b[i]=p+1;
}
}
void maxim()
{
for ( i=1; i<=n; i++ )
if ( b[i]>maxx )
{
maxx=b[i];
pozitie=i;
}
g<<maxx<<'\n';
}
void rezolva ()
{
int i=0;
for ( i=pozitie; i<=n; i++ )
{
if ( b[i]==maxx )
{
g<<v[i]<<" ";
maxx--;
}
}
}
int main ()
{
citeste();
calculeaza();
maxim();
rezolva();
}