#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; int main() { cin.tie(nullptr)->sync_with_stdio(false); int n; cin >> n; constexpr int m = 3000; vector rcnt(m + 1, 0), gcnt(m + 1, 0), bcnt(m + 1, 0); rep(_, 3) rep(i, n) { int x; cin >> x; (_ == 0 ? rcnt : (_ == 1 ? gcnt : bcnt))[x]++; } vector rsum(m + 1, 0); rep(i, m) rsum[i + 1] = rsum[i] + rcnt[i + 1]; ll ans = 0; rep(j, m + 1) rep(k, m + 1) { // r < g + b if (j == 0 || k == 0) continue; if (j + k - 1 > m) continue; ans += (rsum[j + k - 1] - max(rsum[j - 1], rsum[k - 1])) * gcnt[j] * bcnt[k]; } cout << ans << '\n'; return 0; }