Cod sursa(job #1695356)

Utilizator deneoAdrian Craciun deneo Data 26 aprilie 2016 22:45:18
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.59 kb
#include <iostream>
#include <fstream>
using namespace std;

int cate_zeroiuri_are_ultima_cifra(int n) {
    if (n % 10 == 0)
        return 1;
    else
        return 0;
}




int nrzero(int n){
    if(n==0){
        return 0;
    }

    int rezultatul = cate_zeroiuri_are_ultima_cifra(n) + nrzero(n / 10);

    return rezultatul;

    if(n%10==0){
        return nrzero(n/10)+1;
    }
    else{
        return nrzero( n / 10);
    }
}

/*int fib(int n) {
    if(n==1 || n==2){
        return 1;
    }
    if(v[n]==0){
        v[n]= fib(n-1)+fib(n-2);
        return v[n];
    }
    else{
        return v[n];
    }

    //return fib(n-1)+fib(n-2);
}*/



int v[100001], n;



int goluri(int a, int b){
    if(a==0 || b==0){
        return 1;
    }
    int nr=a*10+b;
    if(v[nr]==0){
        v[nr]=goluri(a-1, b)+goluri(a, b-1);
        return v[nr];
    }
    else{
        return v[nr];
    }


    return goluri(a-1, b)+ goluri(a, b-1);

}

int get_laid_maxim (int poz) {
    int bestlungime = 1;
    for (int i = 1; i < poz; ++i) {
        if (v[i] >= v[poz])
            continue;
        if (get_laid_maxim(i) + 1 > bestlungime)
            bestlungime = get_laid_maxim(i) + 1;
    }
    return bestlungime;

}

ifstream fin("scmax.in");
ofstream fout("scmax.out");




int main()
{
    int i, maxim=-1;
    fin>>n;
    for(i=1; i<=n; i++){
        fin>>v[i];
    }

    for(i=1; i<=n; i++){
        if(get_laid_maxim(i)>maxim){
            maxim=get_laid_maxim(i);

        }
    }
    fout<<maxim;
    return 0;
}