Cod sursa(job #2909422)

Utilizator simion_bogdanSimion Bogdan-Dumitru simion_bogdan Data 13 iunie 2022 15:38:15
Problema Subsir crescator maximal Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include<fstream>
#include<climits>

using namespace std;

ifstream cin("scmax.in");
ofstream  cout("scmax.out");

#define maximumLength 100001

int n, DP[maximumLength], arr[maximumLength][2],mark=0;

void solution() {
	int i, j;
	int maxi = 0;
	DP[1] = 1;
	arr[1][1] = 0;
	for (i = 2; i <= n; i++) {
		for (j = 1; j < i; j++) {
			if (arr[j][0] < arr[i][0]) {
				DP[i] = max(1, DP[j] + 1);
				arr[i][1] = mark;
			}
			else {
				DP[i] = max(1, DP[i]);
				
			}
		}
		if (DP[i] == 1) {
			mark++;
			arr[i][1] = mark;
		}
		if (DP[i] > maxi) {
			maxi = DP[i];
		}
	}
	
	cout << maxi << '\n';
	for (i = 1; i <= n; i++) {
		if (arr[i][1] == mark) {
			cout << arr[i][0] << " ";
		}
	}
}

int main() {

	int i,j;

	cin >> n;

	for (i = 1; i <= n; i++) {
		cin >> arr[i][0];
		while (arr[i][0] == arr[i - 1][0]) {
			cin >> arr[i][0];
			n--;
		}
	}
	solution();
}