Problem:
 Score : 300 points    Problem Statement There is a rectangle in a coordinate plane. The coordinates of the four vertices are (0,0) , (W,0) , (W,H) , and (0,H) .
You are given a point (x,y) which is within the rectangle or on its border. We will draw a straight line passing through (x,y) to cut the rectangle into two parts. Find the maximum possible area of the part whose area is not larger than that of the other. Additionally, determine if there are multiple ways to cut the rectangle and achieve that maximum.      Constraints  1 \leq W,H \leq 10^9  0\leq x\leq W  0\leq y\leq H  All values in input are integers.         Input Input is given from Standard Input in the following format:  W  H  x  y       Output Print the maximum possible area of the part whose area is not larger than that of the other, followed by 1 if there are multiple ways to cut the rectangle and achieve that maximum, and 0 otherwise.  The area printed will be judged correct when its absolute or relative error is at most 10^{-9} .        Sample Input 1 2 3 1 2      Sample Output 1 3.000000 0  The line x=1 gives the optimal cut, and no other line does.       Sample Input 2 2 2 1 1      Sample Output 2 2.000000 1

Solution (Python):
w, h, x, y = list(map(int, input().split()))
area_ans = w * h / 2
cog_x = w/2 
cog_y = h/2
if cog_x == x and cog_y == y: 
    cog_ans = 1
    print(str(area_ans) +" "+ str(cog_ans))
else:
    cog_ans = 0
    print(str(area_ans) +" "+ str(cog_ans))

Solution (Python):
W, H, x, y = map(int, input().split())

if x == W/2 and y == H/2:
    area = (W*H)/2
    print(area, 1)
else:
    area = (W*H)/2
    print(area, 0)

Solution (Python):
W,H,x,y = map(int,input().split())
if x == (W/2) and y == (H/2):
    r = 1
else:
    r=0
print( str((W*H)/2)+" "+str(r))

Solution (Python):
W, H, x, y = map(int, input().split())

if x * 2 == W and y * 2 == H:
    t = 1
else:
    t = 0

S = W * H / 2
print(S, t)

Solution (Python):
W, H, x, y = map(int, input().split())
print(W * H / 2, 1 if x * 2 == W and y * 2 == H else 0)

Solution (Python):
w, h, x, y = list(map(int, input().split()))

print((w*h)/2, end=" ")

if x*2 == w and y*2 == h:
    print(1)
else:
    print(0)

Solution (Python):
def q3():
    W, H, x, y = (int(i) for i in input().split())

    
    ans1 = W * H / 2

    
    ans2 = 0
    if x*2 == W and y*2 == H:
        ans2 = 1

    print('{0:.6f} {1}'.format(ans1, ans2))


if __name__ == '__main__':
    q3()

Solution (Python):
W,H,x,y = map(int, input().split())
if (x,y) == (W/2,H/2):
    print(W*H/2, 1)
else:
    print(W*H/2, 0)

Solution (Python):
W,H,x,y = map(int,input().split())
a = W*H/2
c = 0
if x == W/2 and y == H/2:
    c = 1
print(a,c)

Solution (Python):





w, h, x, y = map(int, input().split())
cutting = 0
if w == 2 * x and h == 2 * y:
  cutting += 1
print(w*h/2, cutting)

Solution (Python):
W,H,x,y=map(int,input().split())
count = 0
if W == 2 * x and H == 2 * y:
  count += 1
print(W*H/2, count)

Solution (Python):
W, H, x, y = map(int, input().split())

print(W * H / 2, int(x + x == W and y + y == H))

Solution (Python):
w,h,x,y = map(int, input().split())

calc = w * h / 2
flg = 0
if w/2 == x and h/2 == y:
    flg = 1
print(str(calc) + ' ' + str(flg))

Solution (Python):
w, h, x, y = map(int, input().split())

area = w*h/2
ans = 0

if x == w/2 and y == h/2:
    ans = 1

print(area, ans)

Solution (Python):


import sys
import math
import collections
import itertools
INF = 10 ** 13
MOD = 10 ** 9 + 7
def input() : return sys.stdin.readline().strip()
def lcm(x, y) : return (x * y) // math.gcd(x, y)
def I() : return int(input())
def LI() : return [int(x) for x in input().split()]
def RI(N) : return [int(input()) for _ in range(N)]
def LRI(N) : return [[int(x) for x in input().split()] for _ in range(N)]
def LS() : return input().split()
def RS(N) : return [input() for _ in range(N)]
def LRS(N) : return [input().split() for _ in range(N)]
def PL(L) : print(*L, sep="\n")
def YesNo(B) : print("Yes" if B else "No")
def YESNO(B) : print("YES" if B else "NO")

W, H, x, y = LI()

print((W*H)/2, 1 if x*2 == W and y*2 == H else 0)

Solution (Python):
W, H, x, y = map(int, input().split())
area = W * H

if x == W / 2.0 and y == H / 2.0:
    print(area / 2.0, 1)
else:
    print(area / 2.0, 0)

Solution (Python):


import sys



















def main():
    mod = 1000000007                  
    inf = float('inf')
    sys.setrecursionlimit(10**6)    
    def input(): return sys.stdin.readline().rstrip()
    def ii():  return int(input())
    def mi():  return map(int, input().split())
    def mi_0(): return map(lambda x: int(x)-1, input().split())
    def lmi(): return list(map(int, input().split()))
    def lmi_0(): return list(map(lambda x: int(x)-1, input().split()))
    def li():  return list(input())
    
    
    w, h, x, y = mi()
    g_x = w/2
    g_y = h/2
    ans = "{} {}".format(w*h/2, 1) if x==g_x and y==g_y else "{} {}".format(w*h/2, 0)
    print(ans)

if __name__ == "__main__":
    main()

Solution (Python):
w,h,x,y=map(int,input().split())
ans=w*h/2
res=0
if x==w/2 and y==h/2:
  res=1
print(ans)
print(res)

Solution (Python):
w, h, x, y = [int(i) for i in input().split()]
print(w * h / 2, 1 if x == w / 2 and y == h / 2 else 0)

Solution (Python):
w,h,x,y = map(int,input().split())

print(w*h/2,end=' ')

if w/2 == x and h /2 == y:
    print(1)
else:print(0)

Solution (Python):
w,h,x,y=map(int,input().split())
print(w*h/2)
if x*2==w and y*2==h:
  print(1)
else:
  print(0)

Solution (Python):
w,h,x,y = map(int,input().split())
check = 0
area = w * h
max_min = max(min(x / w,(w-x)/w),min(y/h,(h-y)/h))
if x == w/2 and y == h/2:
  check = 1
print(area /2,check)

Solution (Python):



W, H, x, y = map(int, input().split())


ans = (W * H) / 2
is_ok = (x*2==W) and (y*2==H)

if is_ok:
    print("%f %d"%(ans, 1))
else:
    print("%f %d"%(ans, 0))

Solution (Python):
w, h ,x, y=map(int, input().split())
ans=w*h/2

if w==2*x and h==2*y:
    p=1
else:
    p=0

print(ans, p)

Solution (Python):
w, h, x, y = map(int, input().split())
print(w*h/2, int(x+x-w == y+y-h == 0))

Solution (Python):
w, h, x, y = map(int, input().split())
print(w * h / 2, int((x==w/2)&(y==h/2)))

Solution (Python):
W, H, x, y = map(int, input().split())

if (x==0 and y==0) or (x==0 and y==H) or (x==W and y==0) or (x==W and y==H):
  print(W*H/2, "0")
  exit()

a = min(x*H,(W-x)*H)
b = min(y*W,(H-y)*W)
tmp = '0'
if a == b:
    tmp = '1'
print(W*H/2,tmp)

Solution (Python):
w,h,x,y = map(int,input().split())

if (x == 0 and y == 0) or (x==0 and y==h) or (x==w and y==0) or(x==w and y==h):
    print(w*h/2,'0')
    exit()

a = min(x*h,(w-x)*h)
b = min(y*w,(h-y)*w)
tmp = '0'
if a == b:
    tmp = '1'
print(w*h/2,tmp)

Solution (Python):
w,h,x,y = map(int,input().split())
if x == w/2 and y == h/2:
    f=1
else:
    f=0
print((h*w)/2,f)

Solution (Python):
W,H,x,y = map(int,input().split())


area = (W*H)/2
bl = (W == 2*x and H == 2*y)
t = 1 if bl else 0

print('{} {}'.format(area, t))

Solution (Python):
w,h,x,y=map(int,input().split())
if x==w/2 and y==h/2:
    f=1
else:
    f=0
print((h*w)/2,f)

Solution (Python):


int1 = lambda x: int(x) - 1
def II(): return int(input())

def MI(): return map(int, input().split())
def MI1(): return map(int1, input().split())

def LI(): return list(map(int, input().split()))
def LLI(rows_number): return [LI() for _ in range(rows_number)]


def solve():
    w, h, x, y = MI()

    area = w * h * 1.0 / 2
    print(area, end=' ')

    cx = w / 2
    cy = h / 2
    
    if x == cx and y == cy:
        print(1)
    else:
        print(0)


if __name__ == '__main__':
    solve()

Solution (Python):
W,H,x,y = map(int, input().split())
print(W*H/2,1) if W==2*x and H==2*y else print(W*H/2,0)

Solution (Python):
import sys
sys.setrecursionlimit(10 ** 9)
input = sys.stdin.readline
from itertools import permutations,  combinations, accumulate
from functools import *
from collections import deque, defaultdict, Counter
from heapq import heapify, heappop, heappush, heappushpop

INF = float('inf')
NIL = - 1


W, H, x, y = map(int, input().split())
area = (W * H) / 2
bl = (x * 2 == W and y * 2 == H)
ans = 1 if bl else 0

print('{:.6f} {}'.format(area, ans))

Solution (Python):
W, H, x, y = map(int, input().split())

area = W*H/2

if x == W/2 and y == H/2:
    print(area, 1)
else:
    print(area, 0)

Solution (Python):
w, h, x, y = map(int,input().split())

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

Solution (Python):
w,h,x,y=map(int,input().split())
if 2*x==w and 2*y==h:
  q=1
else:
  q=0
p=[w*h/2,q]
print(*p)

Solution (Python):
W, H, x, y = list(map(int, input().split()))
s = W * H / 2
j = (W / 2) == x and (H / 2) == y
print(s, int(j))

Solution (Python):
w,h,x,y = map(int, input().split())
ans = 0
if w/2 == x and h/2 == y:
    ans = 1

print(w*h/2, ' ', ans)

Solution (Python):
W,H,X,Y = map(int,input().split())

c = 0
if X==W/2 and Y==H/2:
    c = 1

print(W*H/2.0,c)

Solution (Python):
import sys, re
from collections import deque, defaultdict, Counter
from math import ceil, sqrt, hypot, factorial, pi, sin, cos, radians
from itertools import accumulate, permutations, combinations, product, groupby
from operator import itemgetter, mul
from copy import deepcopy
from string import ascii_lowercase, ascii_uppercase, digits
from bisect import bisect, bisect_left
from fractions import gcd
from heapq import heappush, heappop
from functools import reduce
def input(): return sys.stdin.readline().strip()
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(): return list(map(int, input().split()))
def ZIP(n): return zip(*(MAP() for _ in range(n)))
sys.setrecursionlimit(10 ** 9)
INF = float('inf')
mod = 10 ** 9 + 7

W, H, x, y = MAP()

print(W*H/2, end="")
print(" ", end="")

if x == W/2 and y == H/2:
	print(1)
else:
	print(0)

Solution (Python):
w,h,x,y=map(int,input().split())
if x!=w/2 or y!=h/2:
  print(w*h/2,0)
else:
  print(w*h/2,1)

Solution (Python):
w,h,x,y = map(float,input().split())
if x == w/2 and y == h/2:
     print(w*h/2,1)
else:
     print(w*h/2,0)

Solution (Python):
W, H, x, y = map(int, input().split())

is_center = int(x * 2 == W and y * 2 == H)
min_sq = W * H / 2

print("{} {}".format(min_sq, is_center))

Solution (Python):
w,h,x,y=map(int,input().split())

area=w*h/2

if x==w/2 and y==h/2:
    print(area,1)
else:
    print(area,0)

Solution (Python):
W ,H ,x ,y = list(map(int,input().split()))

ans = W*H/2

if x == W/2 and y == H/2:
    judge = 1
else:
    judge = 0
    
print(ans ,judge)

Solution (Python):

import io

nim,mike,x,y=map(int,input().split())

print(nim*mike/2, 1 if x==nim/2 and y==mike/2 else 0)

Solution (Python):
w,h,x,y = map(int,input().split())
ans1 = w*h / 2
if x == w/2 and y == h/2:
  ans2 = 1
else:
  ans2 = 0
print(ans1, ans2)

Solution (Python):
W, H, x, y = map(int, input().split())
div, rem = zip(divmod(W, 2), divmod(H, 2))
print(W * H / 2, int(div == (x, y) and not any(rem)))

Solution (Python):
def main():
    w,h,x,y = map(int,input().split())
    if x==w/2 and y==h/2:
        print(w*h/2,1)
    else:
        print(w*h/2,0)

if __name__ == "__main__":
    main()

Solution (Python):
w,h,x,y=map(int,input().split())
ans1=w*h/2
ans2=0
if x==w/2 and y==h/2:
  ans2=1
print(str(ans1)+' '+str(ans2))

Solution (Python):
w,h,x,y=map(int,input().split())
print(w*(h/2),1*(w/2==x and h/2==y))

Solution (Python):
import sys

w, h, x, y = map(int, sys.stdin.readline().split())

def main():
    s = w * h / 2
    t = x * 2 == w and y * 2 == h; t *= 1
    print(s, t)

if __name__ ==  '__main__':
    main()

Solution (Python):
W, H, x, y = map(int, input().split())
print(W*H/2, 1 if 2*x==W and 2*y==H else 0)

Solution (Python):


w,h,x,y = map(int,input().split())
s = w*h/2
if x==w/2 and y==h/2: print(s,' ',1)
else: print(s,' ',0)

Solution (Python):


def resolve():
    W,H,x,y = map(int,input().split())
    print(H*W/2 , 1 if W/2==x and H/2 == y else 0)


if __name__ == "__main__":
    resolve()

Solution (Python):
w,h,x,y=map(int,input().split())
if w/2==x and h/2==y:k=1
else:k=0
print(w*h/2,k)

Solution (Python):
import sys
def input(): return sys.stdin.readline().rstrip()
def main():
    w,h,x,y=map(int,input().split())
    if x==w/2 and y==h/2:
        print(w*h/2,1)
    else:
        print(w*h/2,0)

if __name__=='__main__':
    main()

Solution (Python):
w, h, x, y = map(int, input().split())

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

Solution (Python):
w, h, x, y = map(int,input().split())

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

Solution (Python):
w, h, x, y = [int(elem) for elem in input().split()]

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

Solution (Python):
def main():
    w,h,x,y = map(int,input().split())
    flg = 0

    if x * 2 == w :
        flg +=1
    if y * 2 == h :
        flg +=1

    if x * h == w * y :
        flg += 1


    ans = max(w * y, h*x)
    if ans * 2 > w*h:
        ans = min(w*y,h*x)

    if flg > 1:
        print(w*h/2, 1)


    else:
        print(w*h/2, 0)

if __name__ == '__main__':
    main()

Solution (Python):
W, H, x, y = map(int, input().split())
print(W*H/2, int(2*x == W and 2*y == H))

Solution (Python):
import sys
import heapq, math
from itertools import zip_longest, permutations, combinations, combinations_with_replacement
from itertools import accumulate, dropwhile, takewhile, groupby
from functools import lru_cache
from copy import deepcopy

W, H, x, y = map(int, input().split())

if W == x * 2 and H == y * 2:
    print(W * H / 2, 1)
else:
    print(W * H / 2, 0)

Solution (Python):
w, h , x, y = map(int ,input().split())

print(w*h /2 ,1 if x+x == w and y+ y ==h else 0 )

Solution (Python):
W, H, x, y = map(int, input().split())
print(W*H/2,1 if x == W/2 and y == H/2 else 0)

Solution (Python):
W, H, x, y = map(int, input().split())
print(W*H/2, end=' ')
print(1 if x == W/2 and y == H/2 else 0)

Solution (Python):
w,h,x,y = map(int,input().split())
if (2*x == w) & (2*y == h):
    print('{0} {1}'.format((w*h)/2,1))
    
else:
    print('{0} {1}'.format((w*h)/2,0))

Solution (Python):
W, H, x, y = map(int, input().split())
can = 0
if x == W/2 and y == H/2:
    can = 1
print("{} {}".format(str(W * H / 2), str(can)))

Solution (Python):
W, H, x, y = map(int, input().split())

area = (W * H) / 2
div = 0
if W * H != 0 and W / 2 == x and H / 2 == y:
    div = 1

print(area, div)

Solution (Python):
w,h,x,y=map(int,input().split())
ans=0
if w==x*2 and h==y*2:
  ans=1
print((w*h)/2,ans)

Solution (Python):
w,h,x,y = map(int, input().split())
a = w*h/2
b = 0
if (w%2 == 0 and w//2 == x):
    if (h%2 == 0 and h//2 == y):
        b = 1
print(*[a,b])

Solution (Python):
W, H, x, y = map(int, input().split())

count = 0
if 2*x == W and 2*y == H:
    ans =W*H/2
    count = 1
else:
    ans = W*H/2

print(ans, count)

Solution (Python):
W,H,x,y=map(int,input().split())
print(str((H*W)/2)+" "+("1" if W/2==x and H/2==y else "0"))

Solution (Python):
W, H, x, y = map(int, input().split())

count = 0
if 2*x == W and 2*y == H:
    ans =W*H/2
    count = 1
else:
    ans = W*H/2

print(ans, count)

Solution (Python):
W,H,x,y = (int(x) for x in input().split())
if 2 * x == W and 2 * y == H:
    ans = [W*H/2, 1]
    print(*ans)
else:
    ans = [W*H/2, 0]
    print(*ans)

Solution (Python):

import sys
input = sys.stdin.readline









W,H,X,Y = map(int,input().split())

ans1 = (W*H)/2
ans2 = 1 if X*2==W and Y*2==H else 0

print(ans1,ans2)

Solution (Python):
w, h, x, y = map(int, input().split())
if 2*x==w and 2*y==h:
    print(w*h/2, 1)
else:
    print(w*h/2, 0)

Solution (Python):
w,h,x,y = map(int,input().split())
area = w*h/2
if x == w/2 and y == h/2:
    print(area, 1)
else:
    print(area,0)

Solution (Python):
w,h,x,y = list(map(int, input().split()))

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

Solution (Python):
w, h, x, y = list(map(int, input().split()))

print(w*h/2, end = ' ')

if((x == (w/2) and y == (h/2))):
    print(1)

else:
    print(0)

Solution (Python):
w,h,x,y = map(int,input().split())

print(w*h/2, ' ',end='')
if x == w/2 and y==h/2:
  print(1)
else:
  print(0)

Solution (Python):
a,b,c,d=map(int,input().split())
ans=0
if c==a/2 and d==b/2:
    ans=1
print(a*b/2, ans)

Solution (Python):
w,h,x,y=map(int,input().split())
if x==w/2 and y==h/2:
    ways=1
else:
    ways=0
print(w*h/2,ways)

Solution (Python):
w, h, x, y = map(int, input().split())

area = w * h / 2

if x == w / 2 and y == h / 2:
    flg = 1
else:
    flg = 0
    
print(area, flg)

Solution (Python):


W, H, x, y = map(int, input().split())

ans1 = float(W) * float(H) / 2
ans2 = 0
if x+x == W and y+y == H:
    ans2 = 1

print("{} {}".format(ans1, ans2))

Solution (Python):
w, h, x, y = map(int, input().split())
ans = 1 if x*2==w and y*2==h else 0
print('{:.10f}'.format(w*h*0.5), ans)

Solution (Python):
W,H,x,y=map(int,input().split())
a = 0
if (x + x == W and y + y == H):
  a = 1
print(W*H*0.5,a)

Solution (Python):
W,H,x,y=map(int,input().split())
print(W*H/2)
if W==2*x and H==2*y:
	print(1)
else:
	print(0)

Solution (Python):
w, h, x, y = map(int, input().split())
area = w * h / 2
center = 1 if x * 2 == w and y * 2 == h else 0
print(area, center)

Solution (Python):
w, h, x, y = map(int, input().split())
if x*2 == w and y*2 == h:
    print(w*h/2, 1)
else:
    print(w*h/2, 0)

Solution (Python):
W, H, x, y = map(int, input().split())

if 2*x==W and 2*y==H:
  a =1
else:
  a =0

print(W*H*0.5, a)

Solution (Python):
import sys
input = sys.stdin.readline

def I(): return int(input())
def MI(): return map(int, input().split())
def LI(): return list(map(int, input().split()))

w,h,x,y=MI()
print(w*h/2,end=" ")
if 2*x==w and 2*y==h:
    print(1)
else:
    print(0)

Solution (Python):
w,h,x,y = map(int,input().split())
if 2*x==w and 2*y==h:
  a =1
else:
  a =0
print(w*h*0.5,a)

Solution (Python):
w,h,x,y=map(int,input().split())
print(w*h/2,int(w==2*x and h==2*y))

Solution (Python):
import sys
IS = lambda: sys.stdin.readline().rstrip()
II = lambda: int(IS())
MII = lambda: list(map(int, IS().split()))

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

if __name__ == '__main__':
    main()

Solution (Python):
A, B, C, D = map(int, input().split())
if(C+C==A and D+D==B):
  print(A*B/2, 1)
else:
  print(A*B/2, 0)

Solution (Python):
W, H, x, y  = map(int, input().split())

center = 0

if W/2 == x and H/2 == y :
  center = 1


print(W*H/2,center)

Solution (Python):
w,h,x,y = map(int,input().split())
ans = w*h/2
if w/2 == x and h/2 == y:
    print(ans,1)
else :
    print(ans,0)

Solution (Python):
w, h, x, y = map(int, input().split())

half = (w * h) / 2

ret = 0

if x == w / 2 and y == h / 2:
    ret = 1

print(half, ret)

Solution (Python):
w, h, x, y = [int(i) for i in input().split()]
print(w * h / 2, int(x * 2 == w and y * 2 == h))

Solution (Python):



from sys import stdin, stdout

w, h, x, y = map(int, stdin.readline().split())
ways = 0
if x * 2 == w and y * 2 == h:
    ways = 1
stdout.write("%.6F %d\n" % (w * h / 2, ways))

Solution (Python):
W,H,x,y = map(int,input().split())
half = W * H / 2
print(half)
if W == x * 2 and H == y * 2:
  print(1)
else:
  print(0)
exit()

Solution (Python):
w, h, x, y = map(int, input().split())
a = 1 if x*2 == w and y*2 == h else 0
print(w*h/2, a)

Solution (Python):
w,h,x,y = map(int,input().split())

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

Solution (Python):
mod = 10 ** 9 + 7
mod2 = 2 ** 61 + 1
from collections import deque
import heapq
from bisect import bisect_left, insort_left, bisect_right

_NUMINT_ALL = list(range(10))


def main():
    ans = solve()
    if ans is not None:
        print(ans)


def solve():
    W, H, x, y = iip(False)

    s = W*H/2
    if x == W/2 and y == H/2:
        split_print_space([s, 1])
    else:
        split_print_space([s, 0])





def iip(listed=True, num_only=True):
    if num_only:
        ret = [int(i) for i in input().split()]
    else:
        ret = [int(i) if i in _NUMINT_ALL else i for i in input().split()]

    if len(ret) == 1 and not listed:
        return ret[0]
    return ret


def sort_tuples(l, index):
    if isinstance(l, list):
        l.sort(key=lambda x: x[index])
        return l
    else:
        l = list(l)
        return sorted(l, key=lambda x: x[index])


def count_elements(l):
    d = {}
    for i in l:
        if i in d:
            d[i] += 1
        else:
            d[i] = 1
    return d


def safeget(l, index, default="exception"):
    if index >= len(l):
        if default == "exception":
            raise Exception("".join(["safegetに不正な値 ", index, "が渡されました。配列の長さは", len(l), "です"]))
        else:
            return default
    elif index < 0:
        if default == "exception":
            raise Exception("".join(["safegetに不正な値 ", index, "が渡されました。負の値は許可されていません"]))
        else:
            return default
    else:
        return l[index]


def iipt(l, listed=False, num_only=True):
    ret = []
    for i in range(l):
        ret.append(iip(listed=listed, num_only=num_only))
    return ret


def sortstr(s):
    return "".join(sorted(s))


def iip_ord(startcode="a"):
    if isinstance(startcode, str):
        startcode = ord(startcode)
    return [ord(i) - startcode for i in input()]


def YesNo(s):
    if s:
        print("Yes")
    else:
        print("No")


def fprint(s):
    for i in s:
        print(i)


def bitall(N):
    ret = []
    for i in range(2 ** N):
        a = []
        for j in range(N):
            a.append(i % 2)
            i //= 2
        ret.append(a)
    return ret


def split_print_space(s):
    print(" ".join([str(i) for i in s]))


def split_print_enter(s):
    print("\n".join([str(i) for i in s]))


def koenai_saidai_x_index(sorted_list, n):
    l = 0
    r = len(sorted_list)
    if len(sorted_list) == 0:
        return False
    if sorted_list[0] > n:
        return False

    while r - l > 1:
        x = (l + r) // 2
        if sorted_list[x] == n:
            return x
        elif sorted_list[x] > n:
            r = x
        else:
            l = x
    return l


def searchsorted(sorted_list, n, side="left"):
    if side not in ["right", "left"]:
        raise Exception("sideはrightかleftで指定してください")

    l = 0
    r = len(sorted_list)

    if n > sorted_list[-1]:
        
        return len(sorted_list)
    if n < sorted_list[0]:
        return 0

    while r - l > 1:
        x = (l + r) // 2
        if sorted_list[x] > n:
            r = x
        elif sorted_list[x] < n:
            l = x
        else:
            if side == "left":
                r = x
            elif side == "right":
                l = x

    if side == "left":
        if sorted_list[l] == n:
            return r - 1
        else:
            return r

    if side == "right":
        if sorted_list[l] == n:
            return l + 1
        else:
            return l


def soinsuu_bunkai(n):
    ret = []
    for i in range(2, int(n ** 0.5) + 1):
        while n % i == 0:
            n //= i
            ret.append(i)
        if i > n:
            break
    if n != 1:
        ret.append(n)
    return ret


def conbination(n, r, mod, test=False):
    if n <= 0:
        return 0
    if r == 0:
        return 1
    if r < 0:
        return 0
    if r == 1:
        return n
    ret = 1
    for i in range(n - r + 1, n + 1):
        ret *= i
        ret = ret % mod

    bunbo = 1
    for i in range(1, r + 1):
        bunbo *= i
        bunbo = bunbo % mod

    ret = (ret * inv(bunbo, mod)) % mod
    if test:
        
        pass
    return ret


def inv(n, mod):
    return power(n, mod - 2)


def power(n, p, mod_=mod):
    if p == 0:
        return 1
    if p % 2 == 0:
        return (power(n, p // 2, mod_) ** 2) % mod_
    if p % 2 == 1:
        return (n * power(n, p - 1, mod_)) % mod_


if __name__ == "__main__":
    main()

Solution (Python):
m = list(map(int,input().split(" ")))
W = m[0]
H = m[1]
x = m[2]
y = m[3]

xyplus = x + y



ans_area = W * H / 2
if x == W / 2 and y == H / 2:
    ans_sp = 1
else:
    ans_sp = 0
print(str(ans_area) + " " + str(ans_sp))

Solution (Python):
w , h ,x ,y = map(int,input().split())
p = 0
if x == w/2 and y == h/2:
    p = 1
print(str((w*h)/2) + " " + str(p))

Solution (Python):
w, h, x, y = map(int, input().split())
print('{} {}'.format(str(w*h/2), str(0 + (x == w/2 and y == h/2))))

Solution (Python):
import sys
import math

from collections import defaultdict
from collections import deque
def load(vtype=int):
    return vtype(input().strip())
def load_list(seplator=" ", vtype=int):
    return [vtype(v) for v in input().strip().split(seplator)]
def exit():
    import sys
    sys.exit(0)
def perm_sub(li, used):
    if len(li) == len(used):
        return [deque()]
    k = []
    for i in range(len(li)):
        if i in used:
            continue
        used.add(i)
        sub_list = perm_sub(li, used)
        for sub in sub_list:
            sub.appendleft(li[i])
        k.extend(sub_list)
        used.discard(i)
    return k
def perm_li(li):
    return perm_sub(li, set())
def perm_n(n):
    return perm_sub(list(range(n)), set())
def join_i(li, sep=""):
    return sep.join([str(e) for e in li])
def li2n(li):
    n, base = 0, 1
    for i in range(len(li)-1, -1, -1):
        n += li[i] * base
        base *= 10
    return n
def sli2ili(li):
    return [int(s) for s in li] 
def prime_list(n):
    li = [i for i in range(2, n+1)]
    for i in range(len(li)):
        if li[i] >= int(math.sqrt(n)):
            break
        if li[i] == -1:
            continue
        for j in range(i+1, len(li)):
            if li[j] % li[i] == 0:
                li[j] = -1
    return [n for n in li if n != -1]
def gcd(a, b):
    a, b = max(a, b), min(a, b)
    while True:
        r = a % b
        if r == 0: return b
        a, b = b, r
def lcm(a, b):
    return int(a * b / gcd(a,b))
def all_subset(li):
    s = []
    n = len(li)
    for bit in range(0, (1<<(n+1))):
        ss = set()
        for i in range(0, n):
            if (bit & (1 << i)):
                ss.add(li[i])
        s.append(ss)
    return s
def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n-1)
def mCn(m, n):
    def factorial_ntimes(m, n):
        r = 1
        while n:
            r *= m
            m -= 1
            n -= 1
        return r
    return int(factorial_ntimes(m, n) / factorial(n))

w,h,x,y = load_list()

print(w * h / 2, int(x+x == w and y+y == h))

Solution (Python):
w,h,x,y=map(int,input().split())
print(w*h/2)
if x==w/2 and y==h/2:
  print(1)
else:
  print(0)

Solution (Python):
H,W,x,y=map(int,input().split())
print(H*W/2,int(x==H/2 and y==W/2))

Solution (Python):
W, H, X, Y = map(float, input().split())

c = W*H/2

if W/2==X and H/2==Y:
	print(c, 1)
else:
	print(c, 0)

Solution (Python):
def main():
    w,h,x,y=list(map(int,input().split()))
    if w/2==x and h/2==y:
        n=1
    else:
        n=0
    print(w*h/2,n)    

if __name__ == '__main__':
    main()

Solution (Python):

def resolve():
    W,H,x,y=map(int,input().split())
    if (W,H)==(2*x,2*y):
        print(W*H/2, 1)
    else:
        print(W*H/2, 0)



resolve()

Solution (Python):
W,H,x,y=map(int,input().split())
a=0
if x==W/2 and y==H/2:
  a=1
print(W*H/2,a)

Solution (Python):
w, h, x, y = map(int, input().split())
result = []
result.append(str((w*h)/2))
if x == w/2 and y == h/2:
    result.append("1")
else:
    result.append("0")
print(" ".join(result))

Solution (Python):
W, H, x, y = map(int, input().split())
if x * 2 == W and y * 2 == H:
    flg = 1
else:
    flg = 0
print(W*H/2, flg)

Solution (Python):
w,h,x,y = map(int,input().split())

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

Solution (Python):
W, H, x, y = map(int, input().split())
mul = 0
if float(y) == H/2:
    if float(x) == W/2:
        mul = 1

print("{:.6f} {}".format(H*W/2, mul))

Solution (Python):
W,H,x,y = list(map(int, input().split()))

print((W*H)/2, int(W/2==x and H/2==y))

Solution (Python):
from collections import deque
from collections import Counter
from itertools import product, permutations,combinations
from operator import itemgetter
from heapq import heappop, heappush
from bisect import bisect_left, bisect_right, bisect




from fractions import gcd
from math import ceil,floor, sqrt, cos, sin, pi, factorial
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
sys.setrecursionlimit(10**8)
INF = float('inf')
MOD = 10**9+7

def main():
  w, h, x, y = map(int, readline().split())
  s = w*h/2
  if x==w/2 and y==h/2:
    ans = 1
  else:
    ans = 0
  print('{} {}'.format(s, ans))
  
  
if __name__ == '__main__':
  main()

Solution (Python):
w,h,x,y = map(int,input().split())

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

Solution (Python):
W, H, x, y = map(int, input().split())

print(W * H / 2, int(x == W / 2 and y == H / 2))

Solution (Python):
W, H, x, y = map(int, input().split())

print(W * H/2 , int(bool(x==W/2 and y==H/2)))

Solution (Python):
w,h,x,y=map(int,input().split())
s=w*h*0.5
t=1 if (w==2*x and h==2*y) else 0
print(s,t)

Solution (Python):
W, H, x, y = map(int, input().split())
if W/2 == x and H/2 == y:
    print (W*H/2, 1)
else:
    print (W*H/2, 0)

Solution (Python):
W,H,x,y = map(int, input().split())
if x == W/2 and y == H/2:
	print(W*H/2,1)
else:
	print(W*H/2,0)

Solution (Python):
w, h, x, y = map(int, input().split())
max_area = w*h/2
flag = 0
if x == w/2 and y == h/2:
    flag = 1
print(max_area, flag)

Solution (Python):
h,w,x,y=map(int,input().split())
s=h*w/2
if h%2==0 and x==h//2 and w%2==0 and y==w//2:
  print(' '.join([str(s),'1']))
else:
  print(' '.join([str(s),'0']))

Solution (Python):
w, h, x, y = map(int, input().split())

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

Solution (Python):
def main():
    import sys
    input = sys.stdin.readline
    sys.setrecursionlimit(10**7)
    from collections import Counter, deque
    
    from itertools import combinations, permutations, accumulate, groupby
    
    from bisect import bisect_left,bisect_right
    import heapq
    from math import floor, ceil
    

    
    

    w,h,x,y = map(int, input().split())
    if x==w/2 and y==h/2:
        print(w*h/2, 1)
    else:
        print(w*h/2, 0)

if __name__ == '__main__':
    main()

Solution (Python):
w,h,x,y = map(int,input().split())
if x == w/2 and y == h/2:
  print(w*h/2,1)
else:print(w*h/2,0)

Solution (Python):
w, h, *xy = map(int, input().split())
print(w*h/2, ([w/2, h/2] == xy)+0)

Solution (Python):
w, h, x, y = map(int, input().split())

answer = w*h/2
judge = 1 if w/2 == x and h/2 == y else 0

print(answer, judge)

Solution (Python):
w, h, x, y = map(int, input().split())
area_max = w * h / 2
if w / 2 == x and h / 2 == y:
  yes_no = 1
else:
  yes_no = 0

print(area_max, yes_no)

Solution (Python):
w,h,x,y = map(int,input().split())
if x == w/2 and y == h/2:
    print(w*h/2,1)
else:
    print(w*h/2,0)

Solution (Python):
W, H, x, y = map(int, input().split())
if x == W / 2 and y == H / 2:
	print((W * H) / 2, 1)
else:
	print((W * H) / 2, 0)
'''
長方形を分割するためには長方形の中心を通る必要がある
ただし、指定された座標が中心の場合は無限に直線が弾ける
'''

Solution (Python):
W,H,x,y = map(int,input().split())
S = (W*H)/2
if x == W/2 and y == H/2:
    print(S,1)
else:
    print(S,0)

Solution (Python):
w, h, x, y = map(int, input().split())

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

Solution (Python):
w,h,x,y=map(int,input().split())
if x==w/2 and y==h/2:
    print(w*h/2,1)
else:
    print(w*h/2,0)

Solution (Python):
W,H,x,y = map(int,input().split())

S = (W*H)/2
if x == W/2 and y == H/2:
    print(S,1)
else:
    print(S,0)