#include "bits/stdc++.h" using namespace std; #define DEBUG(x) cout<<#x<<": "< #define vl vector #define vii vector< vector > #define vll vector< vector > #define vs vector #define pii pair #define pis pair #define psi pair #define pll pair const int inf = 1000000001; const ll INF = 1e18 * 4; #define MOD 1000000007 #define mod 1000000009 #define pi 3.14159265358979323846 #define Sp(p) cout<> n >> r >> g >> b; fact[0] = 1; for (int i = 1; i <= n; i++) { fact[i] = i*fact[i - 1]; } int t1, t2, t3; ll ans = 0; for (t1 = 0; t1 <= r; t1++) { for (t2 = 0; t2 <= min(r, g) && r - t1 - t2 >= 0; t2++) { for (t3 = 0; t3 <= min(g, b) && g - t2 - t3 >= 0 && b - r + t1 + t2 - t3 >= 0; t3++) { if (n + 1 - 2 * g - 2 * b - r - t1 + t3 > n + 1 || n + 1 - 2 * g - 2 * b - r - t1 + t3 < 0) { continue; } int z = n + 1 - 2 * g - 2 * b - r - t1 + t3; int x1 = r - t1 - t2, x2 = t2, x3 = t3; int y1 = t1, y2 = b - x1 - t3, y3 = g - t2 - t3; int m = z + x1 + x2 + x3 + y1 + y2 + y3; ans = (ans + (nCr(m, x1) * mod_pow(2, x1, MOD) % MOD * nCr(m - x1, x2) % MOD * mod_pow(2,x2,MOD) % MOD * nCr(m - x1 - x2, x3) % MOD * mod_pow(2,x3,MOD) % MOD * nCr(m - x1 - x2 - x3, y1) % MOD * nCr(m - x1 - x2 - x3 - y1, y2) % MOD*nCr(m - x1 - x2 - x3 - y1 - y2, y3) % MOD)) % MOD; } } } cout << ans << endl; }