Cod sursa(job #418098)
Utilizator | Data | 15 martie 2010 14:26:36 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
using namespace std;
int l[1<<20],v[1<<20];
ifstream in("scmax.in");
ofstream out("scmax.out");
void scr(int i,int max)
{
if (i==0) return;
if (l[i]==max)
{
scr(i-1,max-1);
out<<v[i]<<" ";
}
else
scr(i-1,max);
}
int main()
{
long long maxim=0,i,j,n,x;
in>>n;
for (i=1;i<=n;i++)
{
in>>v[i];
l[i]=1;
for (j=i-1;j>=1;j--)
if (v[j]<v[i])
{
l[i]=l[j]+1;
if (maxim<l[i])
{
maxim=l[i];
x=i;
}
break;
}
}
out<<maxim<<"\n";
scr(x,maxim);
return 0;
}