import fractions
import sys
from functools import reduce
import math

input = sys.stdin.readline

def main():
    w, h, x, y = input_list()
    if w == x*2 and h == y*2:
        print((w*h)/2, 1)
    else:
        print((w*h)/2, 0)

def divide_list(l, args):
    result = []
    pre = 0
    for i, a in enumerate(args):
        if i != 0:
            pre = args[i-1]
        result.append(l[pre:a])
        if i == len(args) - 1:
            result.append(l[a:])
    return result

def divide_two(n):
    c = 0
    while True:
        if c >= 2:
            break
        if n % 2 != 0:
            break
        n //= 2
        c += 1
    return c

def get_camulative(l):
    import itertools
    # 累積和
    return [0] + list(itertools.accumulate(l))

def combinations_count(n, r):
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r))


def input_list():
    return list(map(int, input().split()))


def input_list_str():
    return list(map(str, input().split()))


def lcm_base(x, y):
    return (x * y) // fractions.gcd(x, y)


def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1)


def gcd(*numbers):
    return reduce(fractions.gcd, numbers)


def gcd_list(numbers):
    return reduce(fractions.gcd, numbers)


if __name__ == "__main__":
    main() import fractions fractions import sys sys from functools import reduce import math math input = sys.stdin.readline input sys.stdin.readline sys.stdin sys stdin readline def main():
    w, h, x, y = input_list()
    if w == x*2 and h == y*2:
        print((w*h)/2, 1)
    else:
        print((w*h)/2, 0) main w, h, x, y = input_list() w input_list() input_list h x y if w == x*2 and h == y*2:
        print((w*h)/2, 1)
    else:
        print((w*h)/2, 0) w == x*2 and h == y*2 w == x*2 w x*2 x 2 h == y*2 h y*2 y 2 print((w*h)/2, 1) print (w*h)/2 w*h w h 2 1 print((w*h)/2, 0) print (w*h)/2 w*h w h 2 0 def divide_list(l, args):
    result = []
    pre = 0
    for i, a in enumerate(args):
        if i != 0:
            pre = args[i-1]
        result.append(l[pre:a])
        if i == len(args) - 1:
            result.append(l[a:])
    return result divide_list result = [] result [] pre = 0 pre 0 for i, a in enumerate(args):
        if i != 0:
            pre = args[i-1]
        result.append(l[pre:a])
        if i == len(args) - 1:
            result.append(l[a:])
     i a enumerate(args) enumerate args if i != 0:
            pre = args[i-1]
         i != 0 i 0 pre = args[i-1] pre args[i-1] args i-1 i 1 result.append(l[pre:a]) result.append result append l[pre:a] l pre:a pre a if i == len(args) - 1:
            result.append(l[a:])
     i == len(args) - 1 i len(args) - 1 len(args) len args 1 result.append(l[a:]) result.append result append l[a:] l a: a return result result l l args args def divide_two(n):
    c = 0
    while True:
        if c >= 2:
            break
        if n % 2 != 0:
            break
        n //= 2
        c += 1
    return c divide_two c = 0 c 0 while True:
        if c >= 2:
            break
        if n % 2 != 0:
            break
        n //= 2
        c += 1
     True if c >= 2:
            break
         c >= 2 c 2 break if n % 2 != 0:
            break
         n % 2 != 0 n % 2 n 2 0 break n //= 2 n 2 c += 1 c 1 return c c n n def get_camulative(l):
    import itertools
    # 累積和
    return [0] + list(itertools.accumulate(l)) get_camulative import itertools itertools return [0] + list(itertools.accumulate(l)) [0] + list(itertools.accumulate(l)) [0] 0 list(itertools.accumulate(l)) list itertools.accumulate(l) itertools.accumulate itertools accumulate l l l def combinations_count(n, r):
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r)) combinations_count return math.factorial(n) // (math.factorial(n - r) * math.factorial(r)) math.factorial(n) // (math.factorial(n - r) * math.factorial(r)) math.factorial(n) math.factorial math factorial n math.factorial(n - r) * math.factorial(r) math.factorial(n - r) math.factorial math factorial n - r n r math.factorial(r) math.factorial math factorial r n n r r def input_list():
    return list(map(int, input().split())) input_list return list(map(int, input().split())) list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split def input_list_str():
    return list(map(str, input().split())) input_list_str return list(map(str, input().split())) list(map(str, input().split())) list map(str, input().split()) map str input().split() ().split () input split def lcm_base(x, y):
    return (x * y) // fractions.gcd(x, y) lcm_base return (x * y) // fractions.gcd(x, y) (x * y) // fractions.gcd(x, y) x * y x y fractions.gcd(x, y) fractions.gcd fractions gcd x y x x y y def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1) lcm_list return reduce(lcm_base, numbers, 1) reduce(lcm_base, numbers, 1) reduce lcm_base numbers 1 numbers numbers def gcd(*numbers):
    return reduce(fractions.gcd, numbers) gcd return reduce(fractions.gcd, numbers) reduce(fractions.gcd, numbers) reduce fractions.gcd fractions gcd numbers *numbers def gcd_list(numbers):
    return reduce(fractions.gcd, numbers) gcd_list return reduce(fractions.gcd, numbers) reduce(fractions.gcd, numbers) reduce fractions.gcd fractions gcd numbers numbers numbers if __name__ == "__main__":
    main() __name__ == "__main__" __name__ "__main__" main() main def gcd_list(numbers):
    return reduce(fractions.gcd, numbers) def gcd_list(numbers):
    return reduce(fractions.gcd, numbers) gcd_list def lcm_base(x, y):
    return (x * y) // fractions.gcd(x, y) def lcm_base(x, y):
    return (x * y) // fractions.gcd(x, y) lcm_base def gcd(*numbers):
    return reduce(fractions.gcd, numbers) def gcd(*numbers):
    return reduce(fractions.gcd, numbers) gcd input = sys.stdin.readline sys.stdin.readline input def combinations_count(n, r):
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r)) def combinations_count(n, r):
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r)) combinations_count def main():
    w, h, x, y = input_list()
    if w == x*2 and h == y*2:
        print((w*h)/2, 1)
    else:
        print((w*h)/2, 0) def main():
    w, h, x, y = input_list()
    if w == x*2 and h == y*2:
        print((w*h)/2, 1)
    else:
        print((w*h)/2, 0) main def divide_two(n):
    c = 0
    while True:
        if c >= 2:
            break
        if n % 2 != 0:
            break
        n //= 2
        c += 1
    return c def divide_two(n):
    c = 0
    while True:
        if c >= 2:
            break
        if n % 2 != 0:
            break
        n //= 2
        c += 1
    return c divide_two def get_camulative(l):
    import itertools
    # 累積和
    return [0] + list(itertools.accumulate(l)) def get_camulative(l):
    import itertools
    # 累積和
    return [0] + list(itertools.accumulate(l)) get_camulative def input_list_str():
    return list(map(str, input().split())) def input_list_str():
    return list(map(str, input().split())) input_list_str def input_list():
    return list(map(int, input().split())) def input_list():
    return list(map(int, input().split())) input_list def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1) def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1) lcm_list def divide_list(l, args):
    result = []
    pre = 0
    for i, a in enumerate(args):
        if i != 0:
            pre = args[i-1]
        result.append(l[pre:a])
        if i == len(args) - 1:
            result.append(l[a:])
    return result def divide_list(l, args):
    result = []
    pre = 0
    for i, a in enumerate(args):
        if i != 0:
            pre = args[i-1]
        result.append(l[pre:a])
        if i == len(args) - 1:
            result.append(l[a:])
    return result divide_list
import fractions
import sys
from functools import reduce
import math

input = sys.stdin.readline

def main():
    w, h, x, y = input_list()
    if w == x*2 and h == y*2:
        print((w*h)/2, 1)
    else:
        print((w*h)/2, 0)

def divide_list(l, args):
    result = []
    pre = 0
    for i, a in enumerate(args):
        if i != 0:
            pre = args[i-1]
        result.append(l[pre:a])
        if i == len(args) - 1:
            result.append(l[a:])
    return result

def divide_two(n):
    c = 0
    while True:
        if c >= 2:
            break
        if n % 2 != 0:
            break
        n //= 2
        c += 1
    return c

def get_camulative(l):
    import itertools
    # 累積和
    return [0] + list(itertools.accumulate(l))

def combinations_count(n, r):
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r))


def input_list():
    return list(map(int, input().split()))


def input_list_str():
    return list(map(str, input().split()))


def lcm_base(x, y):
    return (x * y) // fractions.gcd(x, y)


def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1)


def gcd(*numbers):
    return reduce(fractions.gcd, numbers)


def gcd_list(numbers):
    return reduce(fractions.gcd, numbers)


if __name__ == "__main__":
    main()
