Cod sursa(job #1384843)

Utilizator TPotecTiberiu Potec TPotec Data 11 martie 2015 14:39:24
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>
#define MOD 9901
using namespace std;

int v[100001],nr[100001],lung[100001];
ifstream in("subsiruri.in");
ofstream out("subsiruri.out");

int main()
{
    int i,j,n,lmax,max1=0,numar,max2=0,rez=0;
    in>>n;
    for(i=1; i<=n; i++)
        in>>v[i];
    lung[1] = 1;
    nr[1] = 1;
    for(i=2; i<=n; i++){
        lmax = 0;
        for(j=1; j<i; j++){
            if(v[j] < v[i]){
                if(lung[j] == lmax)
                    numar+= nr[j] % MOD;
                if(lung[j] > lmax){
                    lmax = lung[j];
                    numar = nr[j] % MOD;
                }
            }
            lung[i] = 1+lmax;
            nr[i] = numar % MOD;
        }
    }
    for(i=1; i<=n; i++)
        if(lung[i] > max1){
            max1 = lung[i];
            }
    for(i=1; i<=n; i++){
        if(nr[i] > max2){
            max2 = nr[i];
            rez = nr[i] ;
            }
        else if(nr[i] == max2)
            rez+=nr[i];
        }

    cout<<max1<<" "<<rez;

    return 0;
}