Pagini recente » Cod sursa (job #3004978) | Cod sursa (job #1400102) | Cod sursa (job #2423605) | Cod sursa (job #2236955) | Cod sursa (job #2457934)
#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++)
{
for(int j=1;j<=2;j++)
{
dp[z][x]+=dp[y][z];
swap(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;
}