Pagini recente » Cod sursa (job #2646318) | Cod sursa (job #1229732) | Cod sursa (job #711373) | Cod sursa (job #2712405) | Cod sursa (job #1928582)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100002];
int pred[100002];//pozitia predecesorului
int l[100002];//lungimea maxima a subsirului pana la v[i]
void afis(int n)
{
if(pred[n]>0)
{
afis(pred[n]);
fout<<v[pred[n]]<<" ";
}
}
int main()
{
int n,poz;
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>v[i];
}
l[1]=1;
pred[1]=0;
poz=0;
for(int i=2;i<=n;i++)
{
l[i]=1;
for(int j=1;j<=i-1;j++)
{
if(v[i]>v[j]&&l[j]+1>l[i])
{
l[i]=l[j]+1;
pred[i]=j;
}
}
if(l[i]>l[poz])
{
poz=i;
}
}
fout<<l[poz]<<"\n";
afis(poz);
fout<<v[poz];
return 0;
}