Pagini recente » Cod sursa (job #1060496) | Cod sursa (job #2700788) | Cod sursa (job #2529074) | Cod sursa (job #2548674) | Cod sursa (job #2059692)
#include <fstream>
using namespace std;
ifstream in ("scmax.in");
ofstream out ("scmax.out");
int n;
long long int a[100000+1],l[100000+1];
void work()
{
l[n]=1;
int i,j,maxi=0;
int p=1,lmax=1;
int nr;
for(i=n-1; i>=1; i--)
{
maxi=0;
for(j=i+1; j<=n; j++)
{
if(a[j]>a[i] && l[j]>maxi) { maxi=l[j]; }
}
l[i]=1+maxi;
if(lmax<l[i]) {lmax=l[i]; p=i;}
}
int u;
out<<lmax<<endl;
out<<a[p]<<" "; u=a[p]; lmax--;
for(i=p+1; i<=n; i++)
{
if(a[i]>u && l[i]==lmax)
{
out<<a[i]<<" ";
lmax--;
u=a[i];
}
}
}
int main()
{
int i;
in>>n;
for(i=1; i<=n; i++)
in>>a[i];
work();
//for(i=1; i<=n; i++)
// out<<l[i]<<" ";
return 0;
}