Cod sursa(job #1320605)

Utilizator valentin50517Vozian Valentin valentin50517 Data 18 ianuarie 2015 10:24:15
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

using namespace std;

int a[20], p[20], d[20], i, j,poz, max, max2,n;

void afisare(int k){
	ofstream fout("scmax.out");
	while (k > 0){
		fout << " "<< a[k];
		k = p[k];
	}
	fout.close();
}

int citire(){
	ifstream fin("scmax.in");
	int n;
	fin >> n;
	for (i = 0; i < n; i++){
		fin >> a[i];
	}
	return n;
}

void dinamica(int n){
	ofstream fout("scmax.out");
	d[n] = 1;
	p[n] = 0;
	max2 = n;
	for (i = n - 1; i >= 1; i--){
		max = 0; poz = 0;
		for (j = i + 1; j <= n; j++){
			if (a[i] < a[j] && d[j] > max){
				max = d[j] + 1;
				poz = j;
			}

			p[i] = poz;
			d[i] = max;

			if (d[i] > d[max2]) max2 = i;
		}
	}
	fout << max2 << "\n";
	afisare(n);
	fout.close();
}


int main(){
	n = citire();
	dinamica(n);
	return 0;
}