Cod sursa(job #3131226)

Utilizator DumitrescuADumitrescuA DumitrescuA Data 19 mai 2023 16:05:49
Problema Subsir Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
using namespace std;

ifstream cin("subsiruri.in");
ofstream cout("subsiruri.out");

int dp[1000],a[1000],var[1000];

int main()
{
    int n,i,j,max1,stg;
    cin>>n;
    for(i=0;i<n;i++){

        cin>>a[i];
    }
    dp[0]=1;var[0]=1;
    for(i=1;i<n;i++){
        max1=0;
        stg=1;
        for(j=i-1;j>=0;j--){
            if(a[i]>a[j] && dp[j]==max1){
                stg=0;
                var[i]+=var[j];var[i]%=9901;
            }else if(a[i]>a[j] && dp[j]>max1){
                var[i]=var[j];
                stg=0;
                max1=dp[j];
            }
        }
        if(stg) var[i]=1;
        dp[i]=max1+1;
    }
    max1=0;
    for(i=0;i<n;i++){
        if(max1<=dp[i]){
            max1=dp[i];
        }
    }
    cout<<max1<<"\n";
    int cnt=0;
    for(i=0;i<n;i++){
        if(max1==dp[i]){
            cnt+=var[i];cnt%=9901;
        }
    }
    cout<<cnt;
    return 0;
}