Cod sursa(job #1787267)
Utilizator | Mircea Adrian Mihai JeffTune | Data | 24 octombrie 2016 13:23:38 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#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); }