Pagini recente » Cod sursa (job #2778462) | Cod sursa (job #2655899) | Cod sursa (job #479923) | Cod sursa (job #2065443) | Cod sursa (job #1044639)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
const int NMAX=1000000;
int a[NMAX], b[NMAX], c[NMAX], d[NMAX];
int main()
{
int n, i, j, lmax=0, bmax, poz, p=0;
f>>n;
for(i=1;i<=NMAX;i++) b[i]=1;
for(i=1;i<=n;i++) {
f>>a[i];
for(j=1;j<i;j++) if(a[j]<a[i]) if(1+b[j]>b[i]) {b[i]=1+b[j]; bmax=j;}
if(b[i]>lmax) {lmax=b[i]; poz=i;}
if(b[i]==1) c[i]=-1;
else c[i]=bmax;
}
g<<lmax<<'\n';
while(poz>0) {
d[++p]=a[poz];
poz=c[poz];
}
for(i=p;i>=1;i--) g<<d[i]<<" ";
f.close();
g.close();
return 0;
}