Cod sursa(job #275528)
| Utilizator | Data | 10 martie 2009 15:28:43 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include<fstream.h>
int main()
{
int n,i, l[1000],poz[1000],j;
long a[1000];
ifstream f("scmax.in");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
f.close();
l[n]=1;
poz[n]=-1;
for(i=n-1;i>=1;i--)
{
l[i]=1;poz[i]=-1;
for(j=i+1;j<=n;j++)
if(a[i]<a[j]&&l[i]<l[j]+1)
{
l[i]=l[j]+1;
poz[i]=j;
}
}
int max=l[1],pmax;
for(i=2;i<=n;i++)
{
if(l[i]>max)
{
max=l[i];
pmax=i;
}
}
ofstream g("scmax.out");
g<<max<<"\n";
for(i=pmax;i!=-1;i=poz[i])
g<<a[i]<<" ";
g.close();
return 0;
}
