Pagini recente » Cod sursa (job #2957321) | Cod sursa (job #802791) | Cod sursa (job #1014698) | Cod sursa (job #1684065) | Cod sursa (job #2393238)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
const int dim = 100005;
int n,v[dim],s[dim],sol[dim];
void Solutie(int i)
{
if (sol[i] == -1)
{
out << s[i] << " ";
return ;
}
Solutie(sol[i]);
out << s[i] << " ";
}
int main()
{
int i,maxi,j,i_max,l_max = -1,poz = -1;
in >> n;
for (i=1; i<=n; i++)
{
in >> s[i];
}
v[1] = 1;
sol[1] = -1;
for (i=2; i<=n; i++)
{
maxi = -1;
i_max = -1;
for (j=1; j<i; j++)
{
if (s[j] < s[i])
{
if (v[j] > maxi)
{
maxi = v[j];
i_max = j;
}
}
}
if (maxi == -1)
{
v[i] = 1;
sol[i] = -1;
}
else
{
v[i] = 1 + maxi;
sol[i] = i_max;
}
if (l_max < v[i])
{
l_max = v[i];
poz = i;
}
}
///cout << l_max << " " << poz << "\n";
/*for (i=1; i<=n; i++)
{
cout << sol[i] << " ";
}*/
out << l_max << "\n";
Solutie(poz);
return 0;
}