Cod sursa(job #2759738)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 20 iunie 2021 10:21:09
Problema P-sir Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("psir.in");
ofstream fout("psir.out");

const int nmax = 2005;
int n, v[nmax];
unsigned int dp[nmax][nmax], ans;

int main(){
    fin >> n;
    for (int i = 1; i <= n; ++i){
        fin >> v[i];
    }
    for (int i = 1; i <= n; ++i){
        for (int j = i - 1; j >= 1; --j){
            dp[j][i] = 1;
            if (v[j] < v[i]){
                for (int k = j - 1; k >= 1; --k){
                    if (v[k] == v[i] || v[k] == v[j]){
                        continue;
                    }
                    if (v[k] > v[j]){
                        dp[j][i] += dp[k][j];
                    }
                }
            }
            else{
                for (int k = j - 1; k >= 1; --k){
                    if (v[k] < v[i]){
                        dp[j][i] += dp[k][j];
                    }
                }
            }
            ans += dp[j][i];
        }
    }
    fout << ans;
    return 0;
}