Cod sursa(job #2975347)

Utilizator MihiBluBalau Mihai MihiBlu Data 6 februarie 2023 11:48:05
Problema Subsir Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#define dim 1003
#define modulo 9901
using namespace std;

ifstream f("subsiruri.in");
ofstream g("subsiruri.out");

long n, maxim, sol;
long v[dim], l[dim], c[dim], x, poz;

void citire()
{
    int i;
    f>>n;
    for(i=1; i<=n; i++)
        f>>v[i];
}

void rezolve()
{
    int i, j, k;
    l[n]=1;
    c[n]=1;
    for(k=n; k>=1; k--)
    {
        maxim=0;
        poz=0;
        for(i=k+1; i<=n; i++)
            if(v[i]>v[k] && l[i]>maxim)
                maxim=l[i];
        for(j=k+1; j<=n; j++)
            if(v[j]>v[k] && maxim==l[j])
        {
            poz=poz+c[j];
            c[j]=c[j]%modulo;
        }
        l[k]=1+maxim;
        if(poz==0)
            c[k]=1;
        else
            c[k]=poz;
    }
    for(i=1; i<=n; i++)
        if(maxim<l[i])
         maxim=l[i];
    for(i=1; i<=n; i++)
        if(maxim==l[i])
    {
        sol=sol+c[i];
        sol=sol%modulo;
    }
    g<<maxim<<"\n";
    g<<sol;
}

int main()
{
    citire();
    rezolve();
    return 0;
}