Cod sursa(job #2875517)

Utilizator Tudose_StefanTudose Alexandru Stefan Tudose_Stefan Data 21 martie 2022 19:42:15
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#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;
}