Cod sursa(job #275534)
| Utilizator | Data | 10 martie 2009 15:31:51 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include<fstream.h>
int main()
{
int n,i, l[10000],poz[10000],j;
long a[10000];
ifstream f("scmax.in");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
f.close();
l[n]=1;
poz[n]=-1;
int max=1,pmax;
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;
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;
}
