#include #include using namespace std; const int N = 300010, MOD = 1000000007; int a, b, c, ans, fac[N], inv[N], ifac[N], pw[N]; void Init() { fac[0] = ifac[0] = 1; fac[1] = inv[1] = ifac[1] = 1; for (int i = 2; i < N; ++i) { fac[i] = 1LL * fac[i - 1] * i % MOD; inv[i] = 1LL * (MOD - MOD / i) * inv[MOD % i] % MOD; ifac[i] = 1LL * ifac[i - 1] * inv[i] % MOD; } } int main() { Init(); scanf("%d%d%d", &a, &b, &c); pw[0] = 1LL; for (int i = 1; i < N; ++i) pw[i] = 2LL * pw[i - 1] % MOD; for (int i = 1; i <= a; ++i) { // 最开始连续的x的1 int x = 1LL * fac[a + b + c - i - 2] * ifac[a - i] % MOD; x = 1LL * x * ifac[b - 1] % MOD; x = 1LL * x * ifac[c - 1] % MOD; (ans += 1LL * x * ((pw[a + b + c - i - 1] + MOD- 1) % MOD) % MOD) %= MOD; } printf("%d\n", ans); return 0; }