Pagini recente » Borderou de evaluare (job #1738963) | Cod sursa (job #2633850) | Cod sursa (job #3201203) | Cod sursa (job #1477501) | Cod sursa (job #1895240)
#include <cstdio>
#define MAXN 2001
using namespace std;
unsigned int v[MAXN], d[MAXN][2];
int main()
{
freopen("psir.in", "r", stdin);
freopen("psir.out", "w", stdout);
int i, j, n;
unsigned int ans = 0;
scanf("%d", &n);
for(i=1; i<=n; ++i)
scanf("%u", &v[i]);
for(i=1; i<n; ++i)
for(j=i+1; j<=n; ++j) {
if(v[i] < v[j]) d[j][0]++;
else {if(v[i] > v[j]) d[j][1]++;
else ans++; }}
for(i=3; i<=n; ++i) {
for(j=i-1; j>=1; --j) {
if(v[i] > v[j]) d[i][0] += d[j][1];
else if(v[i] < v[j]) d[i][1] += d[j][0]; }
ans += d[i][0] + d[i][1]; }
printf("%u", ans);
return 0;
}