Cod sursa(job #1970544)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 19 aprilie 2017 13:55:40
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
// cel mai lung subsir crescator.cpp : Defines the entry point for the console application.
//

#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ofstream g("scmax.txt");
ifstream f("scmax.txt");

const int MAX = 100000;
int v[MAX], N, counter = 0;
vector<int>sol,el;


int best(int i){
	counter = 0;
	for (int j = i + 1; j < N; j++) {
		if (v[i] < v[j] && i < j) {
			counter++;
			el.push_back(v[j]);
		}
		if(j == N - 1){
			sol.push_back(counter);
			return counter;
		}

	}
	sol.push_back(counter);
	return counter;
}
void text(vector<int>v) {
	for (int i = 0; i < v.size(); i++) {
		cout << v[i]<<endl;
	}
}

void PD(int v[MAX]){
	
	for (int i = 0; i < N; i++) {
		best(i);
	}
	
	int best_length = 0,poz = 0 ;
	for (int i = 0; i < N; i++) {

		if (sol[i] >= best_length) {
			best_length = sol[i];
			poz = i;
		}
	}
	g << best_length << endl << v[poz]<<" ";
	sort(el.begin(), el.end());
	unique(el.begin(), el.end());
	for (int i = 0; i < best_length - 1; i++) {
		g << el[i] << " ";
	}

}
void citire() {
	f >> N;
	for (int i = 0; i < N; i++) {
		f >> v[i];
	}

}


int main(){	
	citire();
	PD(v);



	return 0;
	
}