peterverebics/CodeNet_Python_118 huggingface dataset:
w, h, x, y = map(float,input().split())
s = w * h / 2
if x == w / 2 and y == h / 2:
    print(s, 1)
else:
    print(s, 0)
W, H, x, y = map(int, input().split())

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

print(ans1, ans2)
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)
import math
from math import gcd
INF = float("inf")

import sys
input=sys.stdin.readline
import itertools
from collections import Counter

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



if __name__=="__main__":
    main()
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)
W,H,x,y=map(int,open(0).read().split())
print(W*H/2,int(x==W/2 and y==H/2))
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()
import sys
def input(): return sys.stdin.readline().strip()
def mapint(): return map(int, input().split())
sys.setrecursionlimit(10**9)

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

print(W * H / 2, end=' ')
if 2 * x == W and 2 * y == H:
    print(1)
else:
    print(0)
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)
W,H,x,y=map(int,input().split())

# m=min(W*y, H*x)

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

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


if __name__ == '__main__':
    main()
# solution
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)
W, H, x, y = [int(i) for i in input().split()]

square = W * H / 2

center_x = W / 2
center_y = H / 2

unique_flag = False

if center_x == x and center_y == y:
    unique_flag = True
    
if unique_flag:
    print(square, 1)
else :
    print(square, 0)
w,h,x,y = map(int,input().split())
if w%2 == 0 and h%2 == 0 and w//2 == x and h //2 == y:
    print(h*w/2,1)
else:
    print(h*w/2,0)
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 12 11:04:24 2020

@author: liang
"""

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

ans = [0] * 2

ans[0] = H*W/2
if x == W/2 and y == H/2:
    ans[1] = 1
else:
    ans[1] = 0
print(" ".join(map(str, ans)))
W,H,x,y=map(int,input().split())
print(W*H/2,end=" ")
if x==W/2 and y==H/2:
  print(1);exit()

print(0)
W, H, x, y = map(int,input().split())
is_center = 1 if x==W/2 and y==H/2 else 0
print(W*H/2, is_center)
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)
w,h,x,y=map(int,input().split())
print(w*h/2,int(w==2*x and h==2*y))
def main():
    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)


if __name__ == "__main__":
    main()
def LI():
    return list(map(int, input().split()))


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

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

print(w*h/2,b)
w,h,x,y=map(int,input().split())
print(w*h/2,int((w==2*x and h==2*y)))
W, H, x, y = map(int, input().split())
if (W, H) == (x*2, y*2):
  D = 1
else:
  D = 0
print(W * H / 2, D)
# import sys
# sys.setrecursionlimit(10 ** 6)
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
    # print(x, y, cx, cy)
    if x == cx and y == cy:
        print(1)
    else:
        print(0)


if __name__ == '__main__':
    solve()
read = lambda: list(map(int, input().split()))
w, h, x, y = read()
sq = w * h / 2
if w == x * 2 and h == y * 2:
    print(sq, 1)
else:
    print(sq, 0)
W,H,x,y=map(int,input().split(" "))


print(W*H/2,1 if x==W/2 and y==H/2  else 0)
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()
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)
W, H, x, y = map(int, input().split())
ans = W * H / 2
check = 0
if W / 2 == x and H / 2 == y:
  check = 1
print(ans, check)
w, h , x, y = map(int, input().split())

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


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

print(W*H/2, (x==W/2)*(y==H/2))
W, H, x, y = list(map(int, input().split()))

ans1 = W * H / 2
ans2 = 0
if x == W / 2 and y == H / 2:
    ans2 = 1
print(ans1, ans2)
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)
from collections import Counter,defaultdict,deque
from heapq import heappop,heappush,heapify
from bisect import bisect_left,bisect_right 
import sys,math,itertools,fractions,pprint
sys.setrecursionlimit(10**8)
mod = 10**9+7
INF = float('inf')
def inp(): return int(sys.stdin.readline())
def inpl(): return list(map(int, sys.stdin.readline().split()))

n,m,x,y = inpl()
res = 0
if n%2==0 and m%2==0 and n//2==x and m//2==y:
    res = 1
print((n*m)/2,res)
w, h, x, y = map(int, input().split())
ans = (w * h) / 2
if w/2 == x and h/2 == y:
    print(str(ans) + ' 1')
else:
    print(str(ans) + ' 0')
W, H, x, y = map(int, input().split())
S = W * H / 2
if W == 2 * x and H == 2 * y:
  print(str(S) + " 1")
else:
  print(str(S) + " 0")
w,h,x,y=map(int,input().split())
u=w*h/2
if w==2*x and h==2*y:
    w=1
else :
    w=0
print(u,w)
W,H,x,y = map(int,input().split())
ans1 = W*H / 2
if x != (W/2) or y != (H/2):
    ans2 = 0
else:
    ans2 = 1

print(ans1,ans2)
w, h, x, y = map(int, input().split())
a = w * h / 2
if x * 2 == w and y * 2 == h:
  b = '1'
else:
  b = '0'
print(str(a) + ' ' + b)
W, H, x, y = map(int, input().split())
dim2 = W * H / 2

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

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)
import sys

input = lambda: sys.stdin.readline().rstrip()


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

    area = W * H * 0.5
    res = 0
    if W % 2 == 0 and H % 2 == 0 and x == W // 2 and y == H // 2:
        res = 1

    print(area, res)


if __name__ == '__main__':
    solve()
W, H, x, y = map(int, input().split())

area = W * H / 2
n = 0
if W / 2 == x and H / 2 == y:
    n = 1

print(area, n)
W,H,x,y=map(int,input().split())
print(W*H/2,int(2*x==W and 2*y==H))
w,h,x,y=map(int,input().split());print((w*h)/2,sum([2*x==w and 2*y==h]))
w, h, x, y = map(int, input().split())

ans  = (w*h)/2

if (x+x) == w and (y+y) == h:
    judge = 1
else:
    judge = 0
    
print(ans, judge)
H,W,x,y=map(int,input().split())
print(H*W/2,int(x==H/2 and y==W/2))
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))
w,h,x,y = map(int,input().split())
s = h*w/2
ans = int((w/2,h/2) == (x,y))
print(s,ans)
W, H, x, y = map(int, input().split())

print(
  H * W / 2,
  1 if 2 * x == W and 2 * y == H else 0
)
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))
# Python3 (3.4.3)
import sys
input = sys.stdin.readline

# -------------------------------------------------------------
# function
# -------------------------------------------------------------


# -------------------------------------------------------------
# main
# -------------------------------------------------------------
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)
w, h, x, y = list(map(int, input().split(' ')))
hoge = w / 2 == x
fuga = h / 2 == y
print('%.6f %s' % ((w*h) / 2, int(hoge and fuga)))
W,H,x,y = map(int,input().split(" "))

Max = W*H/2

if x*2 == W and y*2 == H:
    ver = 1
else:
    ver = 0
    
print("{} {}".format(Max,ver))
from decimal import Decimal
w, h, x, y = map(int, input().split())
print("{:.9f}".format(Decimal(w)*Decimal(h)*Decimal(0.5)), int(2*x==w and 2*y==h))
import sys
import os


def main():
    if os.getenv("LOCAL"):
        sys.stdin = open("input.txt", "r")

    W, H, x, y = list(map(int, sys.stdin.buffer.readline().split()))
    ret = (W * H) / 2
    p = x == W/2 and y == H/2
    print(ret, 1 if p else 0)


if __name__ == '__main__':
    main()
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)
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)
W,H,x,y = map(int, input().split())

quad = [[0,0],[W,0],[W,H],[0,H]] 
S = (quad[1][0]-quad[0][1]) * (quad[2][1]-quad[0][1])
ans = 0

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

print(S/2 , ans)
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)
W, H, x, y = map(int, input().split())
print(W*H/2, int((W/2==x) and (H/2==y)))
W, H, x, y = map(int,input().split())

print("{0} {1}".format(W*H/2, (int)(x==W//2 and y==H//2 and W % 2 == 0 and H % 2 == 0)))
W, H, x, y = map(int, input().split())
ans = H * W / 2
if x == W / 2 and y == H / 2:
    multi = 1
else:
    multi = 0
print(ans ,multi)
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)
w,h,x,y=map(int,input().split())
gx=w/2
gy=h/2
s=(w*h)/2
if gx==x and gy==y:
	print(s,1)
else:
	print(s,0)
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)
W, H, x, y = map(int, input().split())

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

a = W*H//2
if W*H%2 == 1:
  a = str(a)+".5"
b = int(W==X*2 and H==Y*2)
print(a,b)
w,h,x,y=map(int,input().split())

x_mid = w / 2
y_mid = h / 2
if x_mid == x and y_mid == y:
  flg = 1
else:  
  flg = 0
print(w*h/2,flg)
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)
w,h,x,y = map(int,input().split())
#必ず半分にできる…とはいえるのか？多分いえる。
#長方形の重心を通るようにひけばok.
ans = w*h/2
if x*2==w and y*2==h:
	print(ans, 1)
else:
	print(ans, 0)
W, H, x, y = map(int, input().split())
print(W*H/2, 1 if 2 * x == W and 2 * y == H else 0)
W,H,x,y=map(float,input().split())
num=0
if W==x*2 and H==y*2:
    num=1
print(W*H/2,num)
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)
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()
import sys
input = sys.stdin.readline


def readstr():
    return input().strip()


def readint():
    return int(input())


def readnums():
    return map(int, input().split())


def readstrs():
    return input().split()


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


if __name__ == "__main__":
    main()
w,h,x,y=[int(x) for x in input().rstrip().split()]

dou=0
if w/2==x and h/2==y:
  dou=1

print(w*h/2,dou)
import sys

sys.setrecursionlimit(10**7)
def I(): return int(sys.stdin.readline().rstrip())
def MI(): return map(int,sys.stdin.readline().rstrip().split())
def LI(): return list(map(int,sys.stdin.readline().rstrip().split()))  #空白あり
def LI2(): return list(map(int,sys.stdin.readline().rstrip()))  #空白なし
def S(): return sys.stdin.readline().rstrip()
def LS(): return list(sys.stdin.readline().rstrip().split())  #空白あり
def LS2(): return list(sys.stdin.readline().rstrip())  #空白なし

W,H,x,y = MI()
if 2*x == W and 2*y == H:
    print(H*W/2,1)
else:
    print(H*W/2,0)
w, h, x, y = [int(_) for _ in input().split()]

s = w*h/2

if w/2 == x and h/2 == y:
    flag = 1
else:
    flag = 0

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

area=w*h/2

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

ans = W * H / 2
cent = 0
if (x==W/2) and (y==H/2):
  cent = 1
  
print(ans, cent)
W, H, x, y = map(int,input().split())
ans = [(W*H)/2]
if W/2==x and H/2==y:
    ans.append(1)
else:
    ans.append(0)
print(*ans)
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)
w, h , x, y = map(int, input().split())
half = (w * h) / 2
can = 0
if (2*x == w) and (2*y == h):
    can = 1
print(half, can)
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))
w,h,x,y = map(int,input().split())
ar = w*h/2
cx,cy = w/2, h/2
if cx==x and cy==y:
    print(ar,1)
else:
    print(ar,0)
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)
import sys

W, H, x, y = map(int, sys.stdin.readline().split())

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

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

HW = H * W
S1 = min(x * H, HW - x * H)
S2 = min(W * y, HW - W * y)
S = max(S1, S2)

ans2 = S1 == S2

if (x, y) in [(0, 0), (W, 0), (0, H), (W, H)]:
    print(H * W / 2, 0)
    sys.exit()

print(S, int(ans2))
W,H,x,y = map(int, input().split())
flg = 0
if 2*x==W or 2*y==H:
    flg = 1
res = [W*H/2, flg]
print(*res)
w,h, x,y = map(int,input().split())
a = 0
b = 0
a = (w)*(h-y)
b = (w)*y
ans = 0
ans = min(a,b)

ans2 = 0
a = h*(w-x)
b = h*(x)
ans2 = min(a,b)

if ans<ans2:
    print(ans2, 0)
elif ans2<ans:
    print(ans, 0)
else:
    print(ans, 1)
w,h,x,y = list(map(int, input().split()))


a = max(min(x*h, (w-x)*h), min(y*w, (h-y)*w))

if(min(x*h, (w-x)*h) == min(y*w, (h-y)*w)):
  print(a/1.0,1)
else:
  print(a/1.0,0)
W, H, x, y = map(int, input().split())
flag = 0
a = min(H*x,H*(W-x))
b = min(W*y,W*(H-y))
if a==b:
  flag=1
print(max(a,b),flag)
def main():
    W, H, x, y = map(int, input().split())

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

    print(W * H / 2, 1)


main()
w,h,x,y = map(int,input().split())
men1 = min(h*x,h*(w-x))
men2 = min(w*y,w*(h-y))

print("{} {}".format(float(max(men1,men2)),1 if men1 == men2 else 0))
W,H,x,y=map(int,input().split())
s=W*H/2
x=1 if W//2==x and H//2==y else 0
print('{} {}'.format(s,x))
w,h,x,y=map(int,input().split())
a=min(x*h,h*w-x*h)
b=min(y*w,h*w-y*w)

if 2*h==y and 2*w==x:
    print(max(a,b),1)
else:
    print(max(a,b),0)
W, H, x, y = map(int,input().split())

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

a = x * H
b = (W - x)*H
c = W * y
d = W * (H - y)
def f(m ,n):
    if m == 0 or n ==0:
        return 0
    else:
        return min(m,n)

ans = max(f(a,b),f(c,d))
bool = 1
if f(a,b) == f(c,d):
    bool =1
else:
    bool = 0
print(ans, bool)
import sys, math
from collections import defaultdict, deque, Counter
from bisect import bisect_left, bisect_right
from itertools import combinations, permutations, product
from heapq import heappush, heappop
from functools import lru_cache
input = sys.stdin.readline
rs = lambda: input().strip()
ri = lambda: int(input())
rl = lambda: list(map(int, input().split()))
mod = 1000000007
sys.setrecursionlimit(1000000)

W, H, x, y = rl()

area = H*W*0.5
flag = 0
if x+x == W or y+y == H:
	flag = 1
print(area, flag)
w,h,x,y=map(int,input().split())
ma=w*h/2
W=x//2
H=y//2
if W%2==0 and H%2==0 and W==x and H==y:
    boo=1
else:
    boo=0

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

max_area = W * H / 2
print("{} {}".format(max_area, 1 if x / W == y / H else 0))
w,h,x,y = map(int, input().split())
ans = 0
if w%2==0:ans += 1
if h%2==0:ans += 1
if ans > 0: ans -= 1
print((w*h)/2, ans)
S=lambda:input()
I=lambda:int(input())
L=lambda:list(map(int,input().split()))
LS=lambda:list(map(str,input().split()))

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

if __name__=='__main__':
    main()
w, h, x, y = list(map(int, input().split()))
# a = list(map(int, input().split()))
# data = [list(map(int, input().split())) for i in range(n)]
# k = int(input())
#L = list(map(int, input().split()))
# ab_sorted = sorted(ab, key=lambda x: x[0])
#ab = [list(map(int, input().split())) for i in range(n)]
# print(min(15*n, 100*(n//10+1), 100*(n//10)+15*(n % 10)))
if w == h and x == w/2 and y == w/2:
    print(w*h/2, end=" ")
    print(1)
else:
    print(max(min(w*(h-y), w*y), min(h*(w-x), h*x)), end=" ")
    print(0)
W, H, x, y = map(int, input().split())
S = W*H/2
can = 1 if x == W//2 and y == H//2 else 0

print(S, can)
W, H, x, y = map(int, input().split())
print(W * H / 2, int((0 < x < W)&(0 < y < H)))
W,H,x,y = (int(x) for x in input().split())
if x == W // 2 and y == H // 2:
    ans = [W*H/2, 1]
    print(*ans)
else:
    ans = [W*H/2, 0]
    print(*ans)
W,H,x,y=map(int,input().split())
size1 = min((x*H), ((W-x)*H))
size2 = min((W*y), (W*(H-y)))
count = 0
if size1 == size2:
  count += 1
print(max(size1, size2), count)
w,h,x,y=map(int,input().split())

ans=(w*h)/2

if x==0 and 0<=y<=h:
    print(f'{ans:.06f}',end=' ')
    print('0')
if x==w and 0<=y<=h:
    print(f'{ans:.06f}',end=' ')
    print('0')
if y==0 and 0<=x<=w:
    print(f'{ans:.06f}',end=' ')
    print('0')
if y==h and 0<=x<=w:
    print(f'{ans:.06f}',end=' ')
    print('0')
else:
    print(f'{ans:.06f}',end=' ')
    print('1')
W,H,x,y=map(int,input().split())

a=min(x*H,(W-x)*H)
b=min(y*W,(H-y)*W)
ans=0

if a==b:
    ans=1
    print(a,ans)
elif a>b:
    print(a,ans)
else:
    print(b,ans)
w, h, x, y = map(int, input().split())
print((h * w) / 2, int(x == (w // 2) and y == (h // 2)))
# 点(x, y)から長方形の中心を通る直線を引くと面積を半分にすることができ、分割された小さい方の面積が最大となる
# 点(x, y)が長方形の中心と一致する場合、直線は複数存在する

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

s = w * h
s_min = s / 2

# 中心
a = w / 2
b = w / 2

divide = 0

if x == a and y == b:
    divide = 1
    print(s_min, divide)
else:
    print(s_min, divide)
W, H, x, y =  map(int,input().split())
print((H*W)/2, 1 if (x==W//2 and y==H//2) else 0)
w, h, x, y = map(int, input().split())
ans1 = w*h/2
if x % 2 != 0 or y % 2 != 0:
    print(ans1, 0)
elif x == w//2 and y == h//2:
    print(ans1, 1)
else:
    print(ans1, 0)
w,h,x,y = map(int,input().split())
if min(x,w-x)*h == min(y,h-y)*w:
     print(max(min(x, w - x) * h, min(y, h - y) * w), 1)
else:
     print(max(min(x, w - x) * h, min(y, h - y) * w), 0)
w, h, x, y = list(map(int, input().split(" ")))

s = w*h/2

flag = 0

if w == h:
    flag = 1
    
print(s, flag)
W, H, x, y = map(int, input().split(' '))

x1 = x
x2 = W - x

y1 = y
y2 = H - y

r1 = x1 * H
r2 = x2 * H
r3 = y1 * W
r4 = y2 * W

r12 = min(r1, r2)
r34 = min(r3, r4)

n = 0
if r12 == r34:
    n = 1

print(max(r12, r34), n)
W,H,x,y = list(map(int,input().split()))
M = W*H/2
ans = 0
if x == W//2 or y == H//2:
    ans = 1
if x == 0 or y == 0:
    ans = 0
print(M,ans)
w,h,x,y = map(int,input().split())

left = x * h
right = (w - x)*h
under = w * y
top = w * (h - y)
arr = [left,right,under,top]
arr.sort()
if arr[0]==arr[1]:
    print(arr[1],1)
else:
    print(arr[1],0)
import sys, math
from collections import defaultdict, deque, Counter
from bisect import bisect_left, bisect_right
from itertools import combinations, permutations, product
from heapq import heappush, heappop
from functools import lru_cache
input = sys.stdin.readline
rs = lambda: input().strip()
ri = lambda: int(input())
rl = lambda: list(map(int, input().split()))
mod = 1000000007
sys.setrecursionlimit(1000000)

W, H, x, y = rl()

area = (H*W)/2.0
flag = 0
if x*2 == W or y*2 == H:
	flag = 1
print(area, flag)
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)
W, H, x, y = map(int, input().split())

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

print(W*H/2, a)
w,h,x,y = list(map(int, input().split()))

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

X = min(x, W-x) * H
Y = min(y, H-y) * W
ans = 0
if X == Y: ans = 1

if x==0 or x==W: print(Y, 0)
elif y==0 or y==H: print(X, 0)
else: print(max(X,Y), ans)
w,h,x,y = map(int,input().split())
men1 = min(h*x,h*(w-x))
men2 = min(w*y,w*(h-y))

print(max(men1,men2),sep = " ",end = "")
if men1 == men2:
    print(" 1")
else:
    print(" 0")
W,H,w,h = map(float, input().split())
ans =0
if w ==h:
    ans =1
print('{:9f} {}'.format(W*H/2, ans))
w,h,x,y=map(int,input().split())

ans=(w*h)/2

if x==w or x==0:
    print(f'{ans:.06f}',end=' ')
    print('0')
if y==h or y==0:
    print(f'{ans:.06f}',end=' ')
    print('0')
else:
    print(f'{ans:.06f}',end=' ')
    print('1')
W, H, x, y = map(int, input().split())
print(W*H/2, end=' ')
print(1 if W*y==x**H else 0)
W,H,x,y = map(int,input().split())
S = W*H
s1 = x*H
s2 = y*W
d1 = abs(s1-S/2)
d2 = abs(s2-S/2)
if d1 == d2:
    cnt = 1
else :
    cnt = 0
    
if d1<=d2:
    print(s1,cnt)
elif d1>d2:
    print(s2,cnt)
W,H,X,Y = map(int,input().split())
xwari = min(X*H,(W-X)*H)
ywari = min(Y*W,(H-Y)*W)
if xwari == ywari:
    f = 1
else:
    f = 0
print(max(xwari,ywari),f)
A, B, C, D = map(int, input().split())
S = A*B//2
if A%2==1 and B%2==1:
  S += 0.5

ans = 0
if C == A//2 and D == B//2:
  ans = 1
print(S,ans)
W,H,x,y = map(int,input().split())
a = min(H*x,H*(W-x))
b = min(W*y,W*(H-y))
if a==b:
    print(a,1)
else:
    print(max(a,b),0)
w, h, x, y = list(map(int, input().split()))
res = 0
s = w * h / 2
if x == w // 2 and y == h // 2:
    res = 1
print("%s %s" % (s, res))
w,h,x,y=map(int,input().split())

if x==w or x==0:
    if y==h or y==0:
        print(0.0,0)
else:
    w2=w//2
    h2=h//2

    s1=h*w2
    s2=w*h2
    if s1>s2:
        print(s1,0)
    elif s1==s2:
        print(s1,1)
    else:
        print(s2,0)
W, H, x, y = map(int, input().split())

print("{0} {1}".format(H * W / 2, int(x + x == W & y + y == H)))
w,h,x,y=map(int,input().split())
ans=w*h/2
a=0
if( ((x==0 or x==w) and (0<=y and y<=h)) or ((0<=x and x<=w) and (y==0 or y==h)) ):
  a=0
else:
  if(((x==w/2) and (0<=y and y<=h)) or ((0<=x and x<=w) and (y==h/2))):
    a=0
  else:
   	a=1
if(x==w/2 and y==h/2):a=1
print(ans,a)
W,H,x,y = map(int,input().split())

ans_1 = min(W*y, W*(H-y))
ans_2 = min(x*H, (W-x)*H)

if ans_1 == ans_2:
    print(ans_1, 1)
else:
    print(max(ans_1,ans_2), 0)
w,h,x,y = map(int,input().split())

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

a=[]
b=[]
judge=0

a.append(min(x,W-x)*H)
a.append(min(y,H-y)*W)
b.append(max(x,W-x)*H)
b.append(max(y,H-y)*W)

if max(a) in a and b:
    judge=1

print(max(a),judge)
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)
W,H,x,y=map(int,input().split())
if x==int(W/2) and y==int(H/2):
    print(W*H/2,'1')
else:
    print(W*H/2,'0')
W, H, x, y = map(int, input().split())

ans = 0
count = 0
if x == y:
    ans = min(x*H, (W-x)*H)
    count = 1
elif x < y:
    ans = min(x*H, (W-x)*H)
else:
    ans = min(y*W, (H-y)*W)

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

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

print(area, div)