Cod sursa(job #288122)
Utilizator | Onutu Catalin beyond_k7a | Data | 25 martie 2009 16:17:15 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include<fstream.h>
long a[10000];
int n,i,j,max,o,pmax,m,t,q[10000],w[10000],e[10000];
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
a[0]=-1;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
for(i=1;i<=n;i++)
{
max=0;
for(j=0;j<=i;j++)
if(q[j]>=max && a[j]<a[i])
{
max=q[j];
o=j;
}
q[i]=max+1;
w[i]=o;
if(q[i]>q[pmax])
pmax=i;
}
m=q[pmax];
t=pmax;
for(j=1;j<=m;j++)
{
e[j]=a[t];
t=w[t];
}
g<<m<<'\n';
for(i=m;i>0;i--)
g<<e[i]<<" ";
g<<'\n';
f.close();
g.close();
return 0;
}