Pagini recente » Cod sursa (job #1569571) | Cod sursa (job #931484) | Arhiva de probleme | Cod sursa (job #2523468) | Cod sursa (job #2495327)
#include <fstream>
#define dim 100001
using namespace std;
int v[dim], d[dim], n, i, j, maxim, t[dim], sol[dim], k, imax;
int main ()
{
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
fin>>n;
for (i=1; i<=n; i++)
fin>>v[i];
/// tinem in d[i] cel mai lung subsir care se termina in poz i
for (i=1; i<=n; i++)
for (j=1; j<i; j++)
if (v[j]<v[i])
if (d[j]+1>d[i])
{
d[i]=d[j]+1;
t[i]=j;
}
for (i=1; i<=n; i++)
if (d[i]>maxim)
{
maxim=d[i];
imax=i;
}
fout<<maxim+1<<"\n";
while (imax!=0)
{
sol[++k]=imax;
imax=t[imax];
}
for (i=k; i>=1; i--)
fout<<v[sol[i]]<<" ";
}