Pagini recente » Cod sursa (job #3183132) | Cod sursa (job #2496637) | Cod sursa (job #3274838) | Cod sursa (job #70926) | Cod sursa (job #2975495)
#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]] += 1 + f[j][2000] - f[j][v[i]];
else
f[i][v[j]] += f[j][v[i] - 1] + 1;
}
for (int j = 1; j <= 2000; j++)
f[i][j] += f[i][j - 1];
res += f[i][2000];
}
fout << res;
return 0;
}