2
public long goodTriplets(int[] nums1, int[] nums2) {4
int indices[] = new int[n];5
for (int i = 0; i < n; i++) {9
for (int i = 0; i < n; i++) {10
B[i] = indices[nums1[i]];13
Fenw L = new Fenw(n + 1);14
long[] left = new long[n + 1];15
long[] right = new long[n + 1];16
for (int i = 1; i <= n; i++) {17
left[i] = L.sum(B[i - 1] - 1);18
L.update(B[i - 1], 1);20
Fenw R = new Fenw(n + 1);21
for (int i = n; i > 0; i--) {22
right[i] = R.sum(n) - R.sum(B[i - 1]);23
R.update(B[i - 1], 1);26
for (int i = 0; i <= n; i++) {27
ans += left[i] * right[i];39
farr = new long[n + 1];42
void update(int index, int val) {44
for (int i = index; i <= n; i += (i & -i)) {52
for (int i = index; i > 0; i -= (i & -i)) {