Pagini recente » Cod sursa (job #1271659) | Cod sursa (job #1875351) | Cod sursa (job #1196831) | Cod sursa (job #1122351) | Cod sursa (job #1369394)
#include <iostream>
#include<fstream>
#define m 100000
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int a[m],best[m],poz[m],n,i,k,pozi,mx,mmax=0;
int main()
{
int i,j;
fin>>n;
best[n]=1;//lung max a subsir cresc care se termina pana la n
poz[n]=-1;//pozitia valorii care preceda elem n in scmax care se termina la n
for(i=1;i<=n;i++)
{
fin>>a[i];
}
for(i=n-1;i>0;i--)
{
best[i]=1;
poz[i]=-1;
for(j=i+1;j<=n;j++)
if(a[j]>a[i] &&best[j]+1>best[i])
{
best[i]=best[j]+1;
poz[i]=j;
if(best[i]>mmax){mmax=best[i]; pozi=i;}
}
}
fout<<mmax<<'\n';
i=pozi;
while(i!=-1)
{
fout<<a[i]<<" ";
i=poz[i];
}
return 0;
}