Cod sursa(job #2457935)
| Utilizator | Data | 19 septembrie 2019 09:50:21 | |
|---|---|---|---|
| Problema | P-sir | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.13 kb |
#include <iostream>
#include <cstdio>
#include <map>
#include <set>
using namespace std;
const int N=2000+7;
int n,a[N];
map <int,int> t;
set <int> s;
unsigned int dp[N][N];
int main()
{
freopen("psir.in","r",stdin);
freopen("psir.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
s.insert(a[i]);
}
int cur=0;
for(auto &x : s)
t[x]=++cur;
for(int i=1;i<=n;i++)
a[i]=t[a[i]];
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
dp[a[j]][a[i]]++;
int x=a[i];
for(int y=1;y<x;y++)
for(int z=x+1;z<=cur;z++)
{
dp[z][x]+=dp[y][z];
dp[y][x]+=dp[z][y];
}
}
int sum=0;
for(int i=1;i<=cur;i++)
for(int j=1;j<=cur;j++)
sum+=dp[i][j];
cout<<sum<<"\n";
return 0;
}
