Pagini recente » Cod sursa (job #2753078) | Cod sursa (job #2455979) | Cod sursa (job #868648) | Cod sursa (job #2754425) | Cod sursa (job #844726)
Cod sursa(job #844726)
#include <fstream>
using namespace std;
const char iname[] = "scmax.in";
const char oname[] = "scmax.out";
ifstream fin(iname);
ofstream fout(oname);
int N , i , j , maxv , lgmax , st_p;
int v[ 100004 ];
int best[ 100004 ] , pre[ 100004 ];
int main()
{
fin >> N;
for (i = 1; i <= N; ++i)
fin >> v[i];
best[N] = 1;
pre[N] = -1;
for (i = N - 1; i >= 1; --i)
{
pre[i] = -1;
best[i] = 1;
for (j = i + 1; j <= N; ++j)
{
if (best[i] < best[j] + 1 && v[i] < v[j])
{
pre[i] = j;
best[i] = best[j] + 1;
if (best[i] > lgmax)
lgmax = best[i] , st_p = i;
}
}
}
fout << lgmax << '\n';
i = st_p;
while (i != -1)
{
fout << v[i] << ' ';
i = pre[i];
}
return 0;
}