Cod sursa(job #2862001)

Utilizator MokaDomos Mozes Moka Data 4 martie 2022 19:32:56
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.25 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
vector<int>v;
vector<int>kiir;
int beff[100001];
int place[100001];
int maxmplace;
int maxmindex;
int main()
{
    int n;
    f>>n;
    for (int i=0; i<n; i++)
    {
        int a;
        f>>a;
        v.push_back(a);
    }
    f.close();
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<i;j++){
            if(place[i]-1<place[j]){
                if(v[j]<v[i]){
                    place[i]=place[j]+1;
                    if(place[i]>maxmplace){
                        maxmplace=place[i];
                        maxmindex=i;
                    }
                    beff[i]=j;
                }
            }
        }
    }
    /*for (int i=0;i<n;i++){
        cout<<beff[i]<<" ";
    }
    cout<<endl;
    for (int i=0;i<n;i++){
        cout<<place[i]<<" ";
    }
    cout<<endl;*/
    g<<++maxmplace;
    g<<endl;
    kiir.push_back(v[maxmindex]);
    while(place[maxmindex]!=0){
        maxmindex=beff[maxmindex];
        kiir.push_back(v[maxmindex]);
    }
    for (int i : kiir){
        g<<kiir.back()<<" ";
        kiir.pop_back();
    }
    g.close();
    return 0;
}