Pagini recente » Cod sursa (job #2687199) | Cod sursa (job #3167435) | Cod sursa (job #2195541) | Cod sursa (job #2717702) | Cod sursa (job #2875517)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int nrelem, i, j, pozfin, maxim;
int main()
{
fin >> nrelem;
vector <int> nums(nrelem, 0), sirmax(nrelem, 1), precedent(nrelem, -1);
fin >> nums[0];
for (i = 1; i < nrelem; i++)
{
fin >> nums[i];
for (j = i-1; j >= 0; j--)
if (sirmax[j] + 1 > sirmax[i] && nums[i] > nums[j])
{
sirmax[i] = sirmax[j] + 1;
precedent[i] = j;
}
if (sirmax[i] > maxim)
{
maxim = sirmax[i];
pozfin = i;
}
}
fout << sirmax[pozfin] << '\n';
i = 0;
while (pozfin != -1)
{
sirmax[i] = nums[pozfin];
pozfin = precedent[pozfin];
i++;
}
for (j = i-1; j >= 0; j--)
fout << sirmax[j] << ' ';
return 0;
}