Submission #1182160

#TimeUsernameProblemLanguageResultExecution timeMemory
1182160mecukuryurtMountains (NOI20_mountains)C++20
36 / 100
2096 ms2628 KiB
#include <iostream>

#define lli long long int

using namespace std;

lli dp(lli *arr, int n, int sel, lli lst) {
    // cout << arr << "-" << n << "-" << sel << "-" << lst << endl;
    if (sel <= 0) return 1;
    lli sum=0;
    if ((sel == 1) || (sel==3)) {
        for (int i=0; i<n; i++) {
            if (lst > arr[i]) sum+=dp(arr+i+1, n-i-1, sel-1, arr[i]);
        }
    }
    if (sel == 2) {
        for (int i=0; i<n; i++) {
            if (lst < arr[i]) sum+=dp(arr+i+1, n-i-1, sel-1, arr[i]);
        }
    }
    return sum;
}

int main()
{   
    int n;
    cin >> n;
    
    lli arr[n];
    
    for (int i=0; i<n;i++) {
        cin >> arr[i];
    }
    
    cout << dp(arr, n, 3, 1000000000000000000);

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...