Pagini recente » Cod sursa (job #1431785) | Cod sursa (job #1829743) | Cod sursa (job #2847418) | Cod sursa (job #2233259) | Cod sursa (job #1972991)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100005],v[100005],i,j,n,tata[100005],mx,k,mxx,p,sor[100005],z;
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i];
}
v[1]=1;
tata[1]=v[1];
for(i=2;i<=n;i++)
{
mx=1;
tata[i]=i;
for(j=i-1;j>=1;j--)
{
if(a[j]<a[i])
{
if(v[j]+1>mx)
{
mx=v[j]+1;
k=j;
}
}
}
v[i]=mx;
tata[i]=k;
if(v[i]>mxx) {mxx=v[i];p=i;}
}
g<<mxx<<'\n';
z++;
sor[z]=a[p];
while(z<=mxx)
{
z++;
sor[z]=a[tata[p]];
p=tata[p];
}
for(i=z-1;i>=1;i--) g<<sor[i]<<" ";
return 0;
}