Pagini recente » Cod sursa (job #2226896) | Cod sursa (job #232918)
Cod sursa(job #232918)
#include <fstream.h>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int a[100000];
int L[100000];
int t[100000];
int n;
int Lmax;
void Read ();
void SCLM ();
void Write ();
void Write (int i);
int main ()
{
Read ();
SCLM ();
Write ();
fin.close();
fout.close();
return 0;
}
void Read ()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i];
}
void SCLM ()
{
for (int i = 1; i <= n; i++)
{
L[i] = 1;
t[i] = 0;
for (int j = 1; j < i; j++)
if (a[j] < a[i] && L[i] < L[j] + 1)
{
L[i] = L[j] + 1;
t[i] = j;
}
}
}
void Write(int i)
{
if ( !i ) return;
Write ( t[i]);
fout << a[i] << " ";
}
void Write ()
{
int c;
for (int i = 1; i <= n; i++)
if (Lmax < L[i])
Lmax = L[c=i];
fout << Lmax << "\n";;
Write (c);
}