Cod sursa(job #973993)
Utilizator | Alexa Tudose Alexa2001 | Data | 16 iulie 2013 11:15:13 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int i,Max,urm[100003],a[100003],lung[100003],n,j,poz;
int main()
{ f>>n;
for(i=1;i<=n;++i) f>>a[i];
lung[n]=1;
for(i=n-1;i>=1;--i)
{ Max=0;
for(j=i+1;j<=n;++j) if(a[i]<a[j] && Max<lung[j])
{Max=lung[j];urm[i]=j;poz=i;}
lung[i]=Max+1;
}
Max=1;
for(i=1;i<=n-1;++i) if(Max<lung[i]) Max=lung[i];
g<<Max<<'\n';
for(i=1;i<=Max;++i)
{ g<<a[poz]<<" ";
poz=urm[poz];
}
g<<'\n';
return 0;
}