Pagini recente » Cod sursa (job #914274) | Cod sursa (job #423193) | Cod sursa (job #1011511) | Cod sursa (job #2408582) | Cod sursa (job #2975500)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("psir.in");
ofstream fout("psir.out");
unsigned int f[2001][2001];
int n, v[2001], sorted[2001];
const long long mod = pow(2, 32);
int l, r, m, pos;
int main()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> sorted[i], v[i] = sorted[i];
sort(sorted + 1, sorted + n + 1);
for (int i = 1; i <= n; i++)
{
l = 1, r = n;
while (l <= r)
{
m = (l + r) >> 1;
if (sorted[m] >= v[i])
{
pos = m;
r = m - 1;
}
else
l = m + 1;
}
v[i] = pos;
}
unsigned int res = 0;
for (int i = 1; i <= n; i++)
{
fin >> v[i];
for (int j = i - 1; j >= 1; j--)
{
if (v[j] < v[i])
f[i][v[j]] += f[j][n] - f[j][v[i]] + 1;
else if (v[j] > v[i])
f[i][v[j]] += f[j][v[i] - 1] + 1;
}
for (int j = 1; j <= n; j++)
f[i][j] += f[i][j - 1];
res += f[i][n];
}
fout << res;
return 0;
}