Cod sursa(job #1384606)

Utilizator IoanaGavrilescuIoana Gavrilescu IoanaGavrilescu Data 11 martie 2015 11:23:41
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<stdio.h>
int v[1001],lung[1001],nr[1001];
int main(){
    int n,i,j,lmax,pr,maxim,cate,numar;
    freopen("subsiruri.in","r",stdin);
    freopen("subsiruri.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&v[i]);
    lung[1]=1;nr[1]=1;
    for(i=2;i<=n;i++){
        lmax=0;numar=1;
        for(j=1;j<i;j++)
            if(v[j]<v[i]){
                if(lung[j]==lmax)
                    numar=(numar+nr[j])%9901;
                if(lung[j]>lmax){
                    lmax=lung[j];
                    numar=nr[j]%9901;
                }
            }
        lung[i]=1+lmax;
        nr[i]=numar;
    }
    maxim=-1;
    for(i=1;i<=n;i++)
        if(lung[i]>maxim)
            maxim=lung[i];
    printf("%d\n",maxim);
    for(i=1;i<=n;i++)
        if(lung[i]==maxim)
            cate+=nr[i];
    printf("%d\n",cate);
    return 0;
}