Pagini recente » Cod sursa (job #677435) | Cod sursa (job #2674417) | Cod sursa (job #1121307) | Cod sursa (job #1170892) | Cod sursa (job #664238)
Cod sursa(job #664238)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int nr,max1,i,j,a[100001],b[100001],c[100001],n,poz,d[100001],nrn;
int main ()
{
f>>n;
for (i=1;i<=n;i++) f>>a[i];
b[1]=1;
c[1]=0;
for (i=2;i<=n;i++)
{
for (j=i-1;j>=1;j--)
if (a[i]>a[j] && b[j]+1>b[i])
{
b[i]=b[j]+1;
c[i]=j;
}
if (b[i]==0) {b[i]=1;c[i]=0;}
if (b[i]>max1) {max1=b[i]; poz=i;}
}
g<<max1<<'\n';
nr=max1;
d[1]=a[poz];
nrn=1;
while (nr>1)
{
for (i=poz;i>=1;i--)
if (nr==b[i]) { d[++nrn]=a[c[i]]; break; }
nr--;
}
for (i=nrn;i>=1;i--) g<<d[i]<<' ';
return 0;
}