#include <vector>
#include <algorithm>
using namespace std;
constexpr int mask(int x) { return x | x >> 10; }
constexpr int kN = 1e7;
int d[kN];
int f[mask(kN) + 1];
void add(int n, int x) {
for (++x; x <= n; x += x & -x) {
++f[mask(x)];
}
}
int sum(int x) {
int s = 0;
for (; x; x &= x - 1) {
s += f[mask(x)];
}
return s;
}
void count_2d(int n, const unsigned *x, const unsigned *y, unsigned *out) {
for (int i = 0; i < n; ++i) {
d[i] = i;
}
sort(d, d + n, [x, y](int i, int j) {
return x[i] < x[j] || x[i] == x[j] && y[i] > y[j];
});
for (int i = 0; i < n; ++i) {
out[d[i]] = sum(y[d[i]]);
add(n, y[d[i]]);
}
}