Cod sursa(job #2423510)

Utilizator ViAlexVisan Alexandru ViAlex Data 21 mai 2019 16:28:30
Problema Subsir crescator maximal Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
#include<fstream>
#include<vector>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int n,vec[100000];
vector<int> results[1000000];
void read()
{
    in>>n;
    for(int i=0; i<n; i++)
    {
        in>>vec[i];
    }
}
void solve()
{
    int maxindex=0;
    int index_true;
    for(int i=0; i<n; i++)
    {
        int index_to_change;
        int maxsize=0;
        bool change=false;
        for(int k=0; k<i; k++)
        {
            if(vec[k]<vec[i])
            {
                if(results[k].size()>maxsize)
                {
                    maxsize=results[k].size();
                    index_to_change=k;
                    change=true;
                }
            }

        }
        if(change)
        {
            results[i]=results[index_to_change];
        }
        results[i].push_back(i);
        if(results[i].size()>maxindex)
        {
            maxindex=results[i].size();
            index_true=i;
        }
    }
    out<<results[index_true].size()<<endl;
    for(int k=0; k<results[index_true].size(); k++)
    {
        out<<vec[results[index_true][k]]<<" ";
    }
}
int main()
{
    read();
    solve();
    return 0;
}