Cod sursa(job #1268206)

Utilizator cociorbaandreiAndrei Cociorba cociorbaandrei Data 20 noiembrie 2014 18:38:34
Problema Subsir crescator maximal Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <algorithm>
#include "stdlib.h"
#include "stdio.h"
#include <vector>
using namespace std;
int v[100000], n, m = -200000000, k = 0;

void Print(std::vector<int>& v) {
    std::vector<int>::iterator it;
    for(it = v.begin(); it != v.end(); ++it) {
        printf("%d ", *it);
    }  printf("\n"); 
}
void getLis(vector<int>& d){
	vector<vector<int>> L(d.size());
	L[0].push_back(d[0]);
	for(int i = 1;i < d.size();i++){
		for(int j = 0; j < i;j++){
			if(d[j] < d[i] && L[i].size() < L[j].size() + 1){
				L[i] = L[j];
				
			}
		}
		L[i].push_back(d[i]);
		if((int)L[i].size() > m){
			m = (int)L[i].size();
			k = i;
		}
	}
	printf("%d\n",m);
	Print(L[k]);
}
int main() {
	freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
	scanf("%d", &n);
	for(int i = 0; i < n;++i)
		scanf("%d",v + i);

	vector<int> vec(v,v+n);
	getLis(vec);
	
	return 0;
}