Cod sursa(job #247254)
Utilizator | gaboru corupt gabor_oliviu1991 | Data | 22 ianuarie 2009 17:49:59 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include<fstream.h>
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100000],n,i,k,max,l[100000];
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
l[n]=1;
for(k=n-1;k>=1;k--)
{
max=0;
for(i=k;i<=n;i++)
if(l[i]>max&&a[i]>a[k])
max=l[i];
l[k]=max+1;
}
max=l[1];
k=1;
for(i=2;i<=n;i++)
if(l[i]>max)
{
max=l[i];
k=i;
}
g<<max<<"\n"<<a[k]<<" ";
for(i=k+1;i<=n;i++)
if(a[i]>=a[k]&&max-1==l[i])
{
g<<a[i]<<" ";
max--;
}
return 0;
}