Pagini recente » Cod sursa (job #2669298) | Cod sursa (job #2756759) | Cod sursa (job #136734) | Cod sursa (job #1691234) | Cod sursa (job #2078547)
#include<bits/stdc++.h>
#define NMAX 100100
#define IOS ios_base::sync_with_stdio(0); fin.tie(0);
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
unsigned int L[NMAX];
unsigned int a[NMAX];
unsigned int C[NMAX];
unsigned int n, mx, p, k;
void afisare(unsigned int x) {
if (x == -1) {
return;
}
afisare(C[x]);
fout<<a[x]<<" ";
}
int main() {
fin>>n;
IOS;
for (int i=0; i<n; i++) {
fin>>a[i];
}
L[0] = 1; C[0] = -1;
for (unsigned int i=1; i<n; i++) {
L[i] = 1;
p = i;
for (unsigned int j=0; j<i; j++) {
if (a[j]<a[i] && L[p] < L[j] +1) p=j;
}
if (p!=i) {
L[i] = L[p] + 1;
C[i] = p;
} else {
C[i] = -1;
}
}
p = 0;
for (int i=1; i<n; i++) {
if (L[i]>L[p]) p = i;
}
fout<<L[p]<<endl;
afisare(p);
return 0;
}