Pagini recente » Cod sursa (job #828841) | Cod sursa (job #1840919) | Cod sursa (job #2048836) | Cod sursa (job #2069322) | Cod sursa (job #1787263)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("scmax.in"); ofstream g("scmax.out");
int v[100005], p[100005], q[100005];
int i, j, n, mx, x;
void afisare (int fx, int fp){
while (p[fp]!=fx) fp--;
if (fx>1) afisare (fx-1, fp-1);
g << v[fp]<<" ";
}
int main() {
f >> n;
for (i=1; i<=n; i++){
f>>v[i]; x=v[i];
j=1;
while (x>q[j] && j<=mx) j++;
q[j]=x; p[i]=j;
mx=max(mx, j);
}
g << mx <<"\n";
afisare (mx, n);
}