Pagini recente » Rating Doi Barbati si Jumatate (CNMV_Dinu_Moldoveanu_Geana) | Cod sursa (job #1420280) | Cod sursa (job #531274) | Cod sursa (job #1951342) | Cod sursa (job #2737421)
#include <cstdio>
#include <map>
using namespace std;
map<unsigned int, unsigned int> mp;
unsigned int v[2005];
unsigned int sp[2005][2005];
int main()
{ freopen("psir.in", "r", stdin);
freopen("psir.out", "w", stdout);
int n,i,nr,j;
unsigned int aux,sol=0;
scanf("%d", &n);
for(i=1; i<=n; i++){
scanf("%d", &v[i]);
mp[v[i]];
}
map<unsigned int, unsigned int>::iterator it;
for(i=1, it=mp.begin(); it!=mp.end(); it++,i++)
it->second=i;
nr=i-1;
for(i=1; i<=n; i++)
v[i]=mp[v[i]];
for(i=1; i<=n; i++){
for(j=1; j<i; j++){
aux=1;
if(v[i]<v[j])
aux+=sp[j][v[i]-1];
else
if(v[i]>v[j])
aux+=sp[j][nr]-sp[j][v[i]];
sol+=aux;
sp[i][v[j]]+=aux;
}
for(j=1; j<=nr; j++)
sp[i][j]+=sp[i][j-1];
}
printf("%d\n", sol);
return 0;
}