Cod sursa(job #1753994)

Utilizator giotoPopescu Ioan gioto Data 7 septembrie 2016 13:51:04
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#define MOD 9901
using namespace std;

int solm,solk,n,Max[1002],sol[1002],a[1002];
int main()
{
    freopen("subsiruri.in", "r", stdin);
    freopen("subsiruri.out", "w", stdout);
    scanf("%d", &n);
    for(int i=1;i<=n;++i){
        scanf("%d", &a[i]);
        Max[i]=1,sol[i]=1;
    }
    for(int i=1;i<=n;++i){
        for(int j=i+1;j<=n;++j){
            if(a[i]<a[j]){
                if(Max[j]<Max[i]+1){
                    Max[j]=Max[i]+1;
                    sol[j]=sol[i];
                }else if(Max[j]==Max[i]+1)
                    sol[j]=(sol[j]+sol[i])%MOD;
            }
        }
        if(Max[i]>solm){
            solm=Max[i];
            solk=sol[i];
        }else if(solm==Max[i])
            solk=(solk+sol[i])%MOD;
    }
    printf("%d\n%d",solm,solk);
    return 0;
}