Pagini recente » Cod sursa (job #2818576) | Cod sursa (job #119704) | Cod sursa (job #3179735) | Cod sursa (job #2122622) | Cod sursa (job #2909422)
#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();
}