#include <bits/stdc++.h>
using namespace std;
#define fst first
#define snd second
typedef long long ll;
typedef pair<int, int> ii;
const ll LINF = (ll)1e18;
const int INF = (int)1e9;
const int N = (int)2e5 + 5;
// Đếm số cặp (i, j) (i < j) sao cho a[i] + a[j] > b[i] + b[j]
// <=> a[i] - b[i] > b[j] - a[j]
// Nên ở đây các em có thể tạo 1 mảng c chứa các giá trị b[j] - a[j], sort c tăng dần
// Sau đó với mỗi i ở mảng a thì ta đếm có bao nhiêu j ở c thoả mãn c[j] < a[i] - b[i]
int n, a[N], b[N];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
vector<int> c;
for (int i = 1; i <= n; i++) {
cin >> b[i];
c.push_back(b[i] - a[i]);
}
sort(c.begin(), c.end());
ll cnt = 0;
for (int i = 1; i <= n; i++) {
// vị trí j lớn nhất sao cho c[j] < x
// = (vị trí j' đầu tiên sao cho c[j] >= x) - 1
cnt += (lower_bound(c.begin(), c.end(), a[i] - b[i]) - c.begin() - 1) + 1; // vì mảng c đánh số từ 0
cnt -= (b[i] - a[i] < a[i] - b[i]); // nhớ trừ trường hợp i = j
}
cout << cnt / 2 << '\n'; // Mỗi cặp (i, j) bị đếm lặp 2 lần
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAoKI2RlZmluZSBmc3QgZmlyc3QKI2RlZmluZSBzbmQgc2Vjb25kIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7IAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAKCmNvbnN0IGxsIExJTkYgPSAobGwpMWUxODsgCmNvbnN0IGludCBJTkYgPSAoaW50KTFlOTsKCmNvbnN0IGludCBOID0gKGludCkyZTUgKyA1OyAKCi8vIMSQ4bq/bSBz4buRIGPhurdwIChpLCBqKSAoaSA8IGopIHNhbyBjaG8gYVtpXSArIGFbal0gPiBiW2ldICsgYltqXSAKLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD0+IGFbaV0gLSBiW2ldID4gYltqXSAtIGFbal0KLy8gTsOqbiDhu58gxJHDonkgY8OhYyBlbSBjw7MgdGjhu4MgdOG6oW8gMSBt4bqjbmcgYyBjaOG7qWEgY8OhYyBnacOhIHRy4buLIGJbal0gLSBhW2pdLCBzb3J0IGMgdMSDbmcgZOG6p24KLy8gU2F1IMSRw7MgduG7m2kgbeG7l2kgaSDhu58gbeG6o25nIGEgdGjDrCB0YSDEkeG6v20gY8OzIGJhbyBuaGnDqnUgaiDhu58gYyB0aG/huqMgbcOjbiBjW2pdIDwgYVtpXSAtIGJbaV0KCmludCBuLCBhW05dLCBiW05dOwoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgCgljaW4udGllKDApOyAKCWNpbiA+PiBuOyAKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgY2luID4+IGFbaV07IAoKCXZlY3RvcjxpbnQ+IGM7IAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CgkJY2luID4+IGJbaV07CgkJYy5wdXNoX2JhY2soYltpXSAtIGFbaV0pOyAgCgl9CgoJc29ydChjLmJlZ2luKCksIGMuZW5kKCkpOyAKCglsbCBjbnQgPSAwOyAKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewoJCS8vICAgIHbhu4sgdHLDrSBqIGzhu5tuIG5o4bqldCBzYW8gY2hvIGNbal0gPCB4CgkJLy8gPSAoduG7iyB0csOtIGonIMSR4bqndSB0acOqbiBzYW8gY2hvIGNbal0gPj0geCkgLSAxCgkJY250ICs9IChsb3dlcl9ib3VuZChjLmJlZ2luKCksIGMuZW5kKCksIGFbaV0gLSBiW2ldKSAtIGMuYmVnaW4oKSAtIDEpICsgMTsgLy8gdsOsIG3huqNuZyBjIMSRw6FuaCBz4buRIHThu6sgMCAgCgkJY250IC09IChiW2ldIC0gYVtpXSA8IGFbaV0gLSBiW2ldKTsgLy8gbmjhu5sgdHLhu6sgdHLGsOG7nW5nIGjhu6NwIGkgPSBqIAoJfQoKCWNvdXQgPDwgY250IC8gMiA8PCAnXG4nOyAvLyBN4buXaSBj4bq3cCAoaSwgaikgYuG7iyDEkeG6v20gbOG6t3AgMiBs4bqnbgp9