Cod sursa(job #879647)
Utilizator | Civig Corneliu CivigCorneliu | Data | 15 februarie 2013 18:39:34 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.66 kb |
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int main()
{
int a[100002],b[100002],i,j,n,k;
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i];
b[i]=1;
}
int lmax=1;
for(i=n-1;i>0;i--)
{
for(j=i+1;j<=n;j++)
{
if(a[i]<a[j]&&b[i]<b[j]+1)
{
b[i]=b[j]+1;
if(lmax<b[i]+1)
lmax=b[i];
}
}
}
g<<lmax<<endl;
for(i=1;i<=n;i++)
{
if(b[i]==lmax)
{
g<<a[i]<<" ";
lmax--;
}
}
return 0;
}