Pagini recente » Cod sursa (job #2110937) | Cod sursa (job #1314794) | Cod sursa (job #2914219) | Cod sursa (job #2399991) | Cod sursa (job #2607744)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, v[100005], dp[100005], i, j, poz, maxim;
void afisare(int poz)
{
int i;
for (i = poz - 1; i >= 1; i--)
{
if (dp[i] == dp[poz] - 1 && v[poz] > v[i])
{
afisare(i);
break;
}
}
fout << v[poz] << ' ';
}
int main()
{
fin >> n;
for (i = 1; i <= n; i++)
fin >> v[i];
dp[1] = 1;
maxim = 1;
for (i = 2; i <= n; i++)
{
for (j = 1; j < i; j++)
{
if (v[i] > v[j])
dp[i] = dp[j] + 1;
}
if (dp[i] > maxim)
maxim = dp[i], poz = i;
}
fout << maxim << '\n';
afisare(poz);
}