Cod sursa(job #2835375)

Utilizator BadHero112Ursu Vasile BadHero112 Data 18 ianuarie 2022 16:49:03
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include<bits/stdc++.h>
#define ll long long
#define spid ios_base::sync_with_stdio(false);cin.tie(NULL)
#define F first
#define S second
using namespace std;

int A[100001],B[100001],C[100001];
vector<int> D(0,0);
int n;


int main(){
	ifstream cin("scmax.in");
	ofstream cout("scmax.out");
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>A[i];
	}
	for(int i=0;i<n;i++){
		B[i]=1;
	}
	for(int i=1;i<n;i++){
		int j=0;
		while(j<i){
			if(A[j]<A[i]){
				if(B[j]+1>B[i]){
					B[i]=B[j]+1;
					C[i]=j;
				}
				
			}
			j++;
		}
	}
	int maax=B[0],k=0;
	
	for(int i=0;i<n;i++){
		if(maax<B[i]){
			maax=B[i];
			k=i;
		}
	}
	cout<<maax<<endl;
	while(maax--){
		D.push_back(A[k]);
		k=C[k];
	}
	for(int i=D.size()-1;i>=0;i--)cout<<D[i]<<" ";
}