Cod sursa(job #2001161)

Utilizator Vlad3108Tir Vlad Ioan Vlad3108 Data 15 iulie 2017 20:23:06
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <bits/stdc++.h>
#define LMAX 1000
using namespace std;
int v[LMAX],Max[LMAX],T[LMAX];
int main(){
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		scanf("%d",&v[i]);
	for(int i=1;i<=n+1;++i)
        Max[i]=INT_MAX;
	for(int i=1;i<=n;++i){
        int poz=lower_bound(Max+1,Max+n+2,v[i])-Max;
		Max[poz]=v[i];
		T[poz]=i;
	}
	for(int i=1;i<=n+1;++i)
		if(Max[i]==INT_MAX){
			printf("%d\n",i-1);
			for(int j=1;j<=i-1;++j) printf("%d ",v[T[j]]);
			return printf("\n",0);
		}
}