import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        long W = scan.nextLong();
        long H = scan.nextLong();
        long x = scan.nextLong();
        long y = scan.nextLong();
        double area = ((double) W * H) / 2;
        if (is_corner(W, H, x, y)) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (x == 0 || x == W) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (y == 0 || y == H) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        int multiple = W == 2 * x && H == 2 * y ? 1 : 0;
        System.out.println(String.format("%.10f",area) + " " + multiple);

    }
    public static boolean is_corner(long W, long H, long x, long y) {
        if (x == 0 && y == 0) {
            return true;
        }
        if (x == 0 && y == H) {
            return true;
        }
        if (x == W && y == 0) {
            return true;
        }
        if (x == W && y == H) {
            return true;
        }
        return false;
    }
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        long W = scan.nextLong();
        long H = scan.nextLong();
        long x = scan.nextLong();
        long y = scan.nextLong();
        double area = ((double) W * H) / 2;
        if (is_corner(W, H, x, y)) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (x == 0 || x == W) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (y == 0 || y == H) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        int multiple = W == 2 * x && H == 2 * y ? 1 : 0;
        System.out.println(String.format("%.10f",area) + " " + multiple);

    }
    public static boolean is_corner(long W, long H, long x, long y) {
        if (x == 0 && y == 0) {
            return true;
        }
        if (x == 0 && y == H) {
            return true;
        }
        if (x == W && y == 0) {
            return true;
        }
        if (x == W && y == H) {
            return true;
        }
        return false;
    }
} Main public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        long W = scan.nextLong();
        long H = scan.nextLong();
        long x = scan.nextLong();
        long y = scan.nextLong();
        double area = ((double) W * H) / 2;
        if (is_corner(W, H, x, y)) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (x == 0 || x == W) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (y == 0 || y == H) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        int multiple = W == 2 * x && H == 2 * y ? 1 : 0;
        System.out.println(String.format("%.10f",area) + " " + multiple);

    } main {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        long W = scan.nextLong();
        long H = scan.nextLong();
        long x = scan.nextLong();
        long y = scan.nextLong();
        double area = ((double) W * H) / 2;
        if (is_corner(W, H, x, y)) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (x == 0 || x == W) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (y == 0 || y == H) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        int multiple = W == 2 * x && H == 2 * y ? 1 : 0;
        System.out.println(String.format("%.10f",area) + " " + multiple);

    } Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in))); scan new Scanner(new BufferedReader(new InputStreamReader(System.in))) long W = scan.nextLong(); W scan.nextLong() scan.nextLong scan long H = scan.nextLong(); H scan.nextLong() scan.nextLong scan long x = scan.nextLong(); x scan.nextLong() scan.nextLong scan long y = scan.nextLong(); y scan.nextLong() scan.nextLong scan double area = ((double) W * H) / 2; area ((double) W * H) / 2 ((double) W * H) (double) W H 2 if (is_corner(W, H, x, y)) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        } is_corner(W, H, x, y) is_corner W H x y {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        } System.out.println(String.format("%.10f",area) + " " + 0) System.out.println System.out System System.out String.format("%.10f",area) + " " + 0 String.format("%.10f",area) + " " + 0 String.format("%.10f",area) String.format String "%.10f" area " " 0 return; if (x == 0 || x == W) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        } x == 0 || x == W x == 0 x 0 x == W x W {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        } System.out.println(String.format("%.10f",area) + " " + 0) System.out.println System.out System System.out String.format("%.10f",area) + " " + 0 String.format("%.10f",area) + " " + 0 String.format("%.10f",area) String.format String "%.10f" area " " 0 return; if (y == 0 || y == H) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        } y == 0 || y == H y == 0 y 0 y == H y H {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        } System.out.println(String.format("%.10f",area) + " " + 0) System.out.println System.out System System.out String.format("%.10f",area) + " " + 0 String.format("%.10f",area) + " " + 0 String.format("%.10f",area) String.format String "%.10f" area " " 0 return; int multiple = W == 2 * x && H == 2 * y ? 1 : 0; multiple W == 2 * x && H == 2 * y ? 1 : 0 W == 2 * x && H == 2 * y W == 2 * x W 2 * x 2 x H == 2 * y H 2 * y 2 y 1 0 System.out.println(String.format("%.10f",area) + " " + multiple) System.out.println System.out System System.out String.format("%.10f",area) + " " + multiple String.format("%.10f",area) + " " + multiple String.format("%.10f",area) String.format String "%.10f" area " " multiple String[] args args public static boolean is_corner(long W, long H, long x, long y) {
        if (x == 0 && y == 0) {
            return true;
        }
        if (x == 0 && y == H) {
            return true;
        }
        if (x == W && y == 0) {
            return true;
        }
        if (x == W && y == H) {
            return true;
        }
        return false;
    } is_corner {
        if (x == 0 && y == 0) {
            return true;
        }
        if (x == 0 && y == H) {
            return true;
        }
        if (x == W && y == 0) {
            return true;
        }
        if (x == W && y == H) {
            return true;
        }
        return false;
    } if (x == 0 && y == 0) {
            return true;
        } x == 0 && y == 0 x == 0 x 0 y == 0 y 0 {
            return true;
        } return true; true if (x == 0 && y == H) {
            return true;
        } x == 0 && y == H x == 0 x 0 y == H y H {
            return true;
        } return true; true if (x == W && y == 0) {
            return true;
        } x == W && y == 0 x == W x W y == 0 y 0 {
            return true;
        } return true; true if (x == W && y == H) {
            return true;
        } x == W && y == H x == W x W y == H y H {
            return true;
        } return true; true return false; false long W W long H H long x x long y y public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        long W = scan.nextLong();
        long H = scan.nextLong();
        long x = scan.nextLong();
        long y = scan.nextLong();
        double area = ((double) W * H) / 2;
        if (is_corner(W, H, x, y)) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (x == 0 || x == W) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (y == 0 || y == H) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        int multiple = W == 2 * x && H == 2 * y ? 1 : 0;
        System.out.println(String.format("%.10f",area) + " " + multiple);

    }
    public static boolean is_corner(long W, long H, long x, long y) {
        if (x == 0 && y == 0) {
            return true;
        }
        if (x == 0 && y == H) {
            return true;
        }
        if (x == W && y == 0) {
            return true;
        }
        if (x == W && y == H) {
            return true;
        }
        return false;
    }
} public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        long W = scan.nextLong();
        long H = scan.nextLong();
        long x = scan.nextLong();
        long y = scan.nextLong();
        double area = ((double) W * H) / 2;
        if (is_corner(W, H, x, y)) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (x == 0 || x == W) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (y == 0 || y == H) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        int multiple = W == 2 * x && H == 2 * y ? 1 : 0;
        System.out.println(String.format("%.10f",area) + " " + multiple);

    }
    public static boolean is_corner(long W, long H, long x, long y) {
        if (x == 0 && y == 0) {
            return true;
        }
        if (x == 0 && y == H) {
            return true;
        }
        if (x == W && y == 0) {
            return true;
        }
        if (x == W && y == H) {
            return true;
        }
        return false;
    }
} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        long W = scan.nextLong();
        long H = scan.nextLong();
        long x = scan.nextLong();
        long y = scan.nextLong();
        double area = ((double) W * H) / 2;
        if (is_corner(W, H, x, y)) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (x == 0 || x == W) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        if (y == 0 || y == H) {
            System.out.println(String.format("%.10f",area) + " " + 0);
            return;
        }
        int multiple = W == 2 * x && H == 2 * y ? 1 : 0;
        System.out.println(String.format("%.10f",area) + " " + multiple);

    }
    public static boolean is_corner(long W, long H, long x, long y) {
        if (x == 0 && y == 0) {
            return true;
        }
        if (x == 0 && y == H) {
            return true;
        }
        if (x == W && y == 0) {
            return true;
        }
        if (x == W && y == H) {
            return true;
        }
        return false;
    }
}
