Pagini recente » Cod sursa (job #2757369) | Cod sursa (job #392165) | Cod sursa (job #1086523) | Cod sursa (job #2305236) | Cod sursa (job #568196)
Cod sursa(job #568196)
#include <iostream>
#include <fstream>
using namespace std;
long X[100005], N, L[100005], LMax, imax, Subsir[100005];
void citire ()
{
ifstream fin ("scmax.in");
int i;
fin >> N;
for (i=1; i<=N; i++)
{
fin >> X[i];
}
fin.close ();
}
void afisare ()
{
ofstream fout ("scmax.out");
long i, l;
l=LMax;
fout << l << "\n";
Subsir[l]=X[imax];
for (i=imax-1; i>=0; i--)
{
if (L[i]==l-1)
{
l--;
Subsir[l]=X[i];
}
if (l==0)
{
break;
}
}
for (i=1; i<=LMax; i++)
{
fout << Subsir[i] << " ";
}
fout << "\n";
fout.close ();
}
int main()
{
int i, j;
citire ();
LMax=1;
L[1]=1;
for (i=2; i<=N; i++)
{
for (j=i-1; j>=0; j--)
{
if ((X[i]>X[j])&&(L[i]<L[j]+1))
{
L[i]=L[j]+1;
}
}
if (L[i]>LMax)
{
LMax=L[i];
imax=i;
}
}
afisare ();
return 0;
}