Pagini recente » Cod sursa (job #2521037) | Cod sursa (job #41724) | Cod sursa (job #2318053) | Cod sursa (job #97181) | Cod sursa (job #1778252)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,a[100001],l[100001],ant,val,vmax,i,poz=1;//,ram;
void citire()
{
f>>n;
for (i=1;i<=n;i++)
{
f>>a[i];
l[i]=0;
}
}
int ss(int x)
{
int i,maxim=0;
for (i=x+1;i<=n;i++) if (a[x]<a[i]) if (l[i]>maxim) maxim=l[i];
return maxim;
}
void afisare (int val)
{
int i;
if (val>0)
{
for (i=poz;i<=n;i++) if (l[i]==val)
{
g<<a[i]<<" ";
poz=i;
val--,afisare(val);
break;
}
}
else return;
}
void scm()
{
int i,vmax=-1;
l[n]=1;
for (i=n-1;i>=1;i--)
{
l[i]=ss(i)+1;
if (l[i]>vmax)vmax=l[i];
}
//ram=vmax;
g<<vmax<<'\n';
afisare(vmax);
}
int main()
{
citire();
scm();
return 0;
}