Cod sursa(job #1049143)

Utilizator kitzTimofte Bogdan kitz Data 6 decembrie 2013 22:49:39
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <iostream>
#include <cstdio>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n;
int v[100003], lung[100003];
int indice, maxl;
void printSub(){
	g << v[indice] << " ";
	for(int i = 1; i <= n; i++)
		if(lung[i] == maxl - 1) {
			g << v[i] << " ";
			maxl --;
		}
}
int main()
{
	f >> n;
    cout<<n<<"\n";
    for(int i = 1; i <= n; i++)
        f >> v[i];
    for(int i = 1; i <= n; i ++)
        cout << v[i] << " ";
    lung[n] = 1;
    for(int i = n-1; i >=1; i--){
        for(int j = i+1; j <=n; j++)
            if(v[i] < v[j] && lung[i] < lung[j]) {
				lung[i] = lung[j] + 1; maxl = lung[i]; indice = i;
			}
    }
    g << maxl << "\n";
	printSub();
    return 0;
}