Pagini recente » Cod sursa (job #1637328) | Cod sursa (job #2094199) | Cod sursa (job #745982) | Cod sursa (job #2230097) | Cod sursa (job #2759145)
#include <fstream>
using namespace std;
ifstream in ("scmax.in");
ofstream out ("scmax.out");
const int N = 100000;
long long a[N], v[N];
int l[N];
int main()
{
int n, k = 0;
in >> n;
for (int i = 0; i < n; i++)
{
in >> a[i];
}
in.close();
l[0] = 1;
for (int i = 1; i <= n; i++)
{
int maxi = 0;
for (int j = 0; j < i; j++)
{
if (a[j] < a[i])
{
maxi = max (maxi, l[j]);
}
}
l[i] = 1 + maxi;
}
int m = 0;
for (int i = 0; i < n; i++)
{
m = max (m, l[i]);
}
out << m << '\n';
v[k] = a[m];
for (int j = m - 1; j >= 0 && k <= m; j--)
{
if (a[j] < v[k])
{
v[k++] = a[j];
}
}
for (int i = 0; i <= k; i++)
{
out << v[i] << ' ';
}
out.close();
return 0;
}