Pagini recente » Cod sursa (job #1494718) | Cod sursa (job #1424567) | Cod sursa (job #2179250) | Cod sursa (job #376570) | Cod sursa (job #2077152)
#include <fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int v[105], i, n, j, lu[105], maxx, poz[105], pmax, x;
int main()
{
fin >> n;
for (i = 1; i <= n; i++)
fin >> v[i];
lu[n] = 1;
for (i = n - 1; i > 0; i--)
{ lu[i] = 1;
for (j = i + 1; j <= n; j++)
{
if (v[i] < v[j])
{
if (lu[j] + 1 > lu[i])
lu[i] = lu[j] + 1;
}
}
}
maxx = lu[1];
pmax = 1;
for (i = 2; i <= n; i++)
{
if (lu[i] > maxx)
maxx = lu[i], pmax = i;;
}
poz[n] = 0;
for (i = n - 1; i > 0; i--)
{ x = 0;
for (j = i + 1; j <= n; j++)
{
if (v[i] < v[j] && lu[j] > x)
{
poz[i] = j, x = lu[j];
}
}
}
fout << "subsirul crescator maximal are lungimea " << maxx << '\n';
for (i = pmax; i <= n && i > 0; )
{
fout << v[i] << ' ';
i = poz[i];
}
fin.close ();
fout.close ();
return 0;
}