Pagini recente » Cod sursa (job #2762180) | Cod sursa (job #2825015) | Cod sursa (job #2576295) | Cod sursa (job #965028) | Cod sursa (job #1956642)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int main()
{
int n,i; in >> n;
int v[n+1];
int lengths[n+1];
for (i=1;i<=n;i++) lengths[i] = 1;
for (i=1;i<=n;i++) in >> v[i];
int maximum, position , current_length,j;
for (i=2;i<=n;i++)
{
maximum = 0; position = 0;
for (j=1;j<=i-1;j++)
{
if ( (maximum < v[j]) && (v[j] < v[i]) )
{
maximum = v[j];
position = j;
}
}
if (position != 0) lengths[i] = lengths[position] + 1;
}
int max_length = 0, max_position;
for (i=1;i<=n;i++) if (lengths[i] > max_length)
{
max_length = lengths[i];
max_position = i;
}
out << max_length << '\n';
out << v[max_position] << " ";
int reveresed[n+1], k = 1;
for (i=max_position;i>=1;i--)
{
if (v[i] < v[max_position])
{
max_position = i;
reveresed[k] = v[i];
k++;
}
}
for (i=1;i<=k-1;i++) out << reveresed[i] << " ";
return 0;
}