← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	var n, a, b, c int64
	fmt.Fscan(in, &n, &a, &b, &c)

	A := a / 2
	maxZ := n / 2
	if c < maxZ {
		maxZ = c
	}

	var ans int64
	for z := int64(0); z <= maxZ; z++ {
		rem := n - 2*z
		lo := rem - A
		if lo < 0 {
			lo = 0
		}
		hi := rem
		if hi > b {
			hi = b
		}
		if hi >= lo {
			ans += hi - lo + 1
		}
	}

	out := bufio.NewWriter(os.Stdout)
	fmt.Fprint(out, ans)
	out.Flush()
}