Pagini recente » Cod sursa (job #1938483) | Cod sursa (job #2830097) | Cod sursa (job #1599925) | Cod sursa (job #2053618) | Cod sursa (job #2506150)
#include <fstream>
#define MAX 100005
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int n, a[MAX], b[MAX], l, pos[MAX];
int main()
{
int i, j;
fin >> n;
for (i = 1; i <= n; i++)
fin >> a[i];
for (i = 1; i <= n; i++) {
b[i] = 1;
pos[i] = 0;
for (j = 1; j < i; j++) {
if (a[j] < a[i]) {
if (b[i] < b[j]+1) {
b[i] = b[j]+1;
pos[i] = j;
}
}
}
if (b[i] > b[l])
l = i;
}
fout << b[l] << "\n";
int k = 1;
while (a[l]) {
b[k++] = a[l];
l = pos[l];
}
for (i = k-1; i > 0 ; i--)
fout << b[i] << " ";
return 0;
}