Pagini recente » Cod sursa (job #900116) | Cod sursa (job #3211662) | Cod sursa (job #3226144) | Cod sursa (job #3231037) | Cod sursa (job #524522)
Cod sursa(job #524522)
#include <fstream.h>
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
long n, maxlg, indicemaxlg, max, lg[1000001], u[100001], a[100001], nrr;
int main()
{
fin >> n;
for (long i = 1; i <= n; i ++)
fin >> a[i];
max = 0;
for (long j = n; j >= 1; j --)
{
maxlg = 0;
indicemaxlg = 0;
for (long i = j + 1; i <= n; i++)
if (maxlg < lg[i] && a[i] > a[j])
{
maxlg = lg[i];
indicemaxlg = i;
}
lg[j] = maxlg + 1;
u[j] = indicemaxlg;
if (lg[j] > max)
{
max = lg[j];
nrr = j;
}
}
fout << max << '\n';
while (nrr != 0)
{
fout << a[nrr] << " ";
nrr = u[nrr];
}
return 0;
}