Pagini recente » Cod sursa (job #116156) | Cod sursa (job #114221) | Cod sursa (job #269633) | Cod sursa (job #3179597) | Cod sursa (job #929934)
Cod sursa(job #929934)
#include <fstream>
using namespace std;
ifstream in ("scmax.in");
ofstream out ("scmax.out");
const int OS=100001;
int v[OS],lung[OS],rez[OS],pred[OS];
int main()
{
int n,i,j,max=0,imax,vmax,max0;
in>>n;
for(i=1;i<=n;i++)
in>>v[i];
for(i=1;i<=n;i++)
{
lung[i]=0;
for(j=1;j<i;j++)
if(v[j]<v[i] && lung[j]>lung[i])
{
lung[i]=lung[j];
pred[i]=j;
}
lung[i]++;
if(lung[i]>max)
{
max=lung[i];
imax=i;
vmax=v[i];
}
}
out<<max<<"\n";
i=max;
rez[max]=imax;
while(i!=0)
{
i--;
imax=pred[imax];
rez[i]=imax;
}
for(i=1;i<=max;i++)
out<<v[rez[i]]<<" ";
return 0;
}