import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Scanner;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 *
 * @author Twinkle Twinkle Little Star
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        Scanner in = new Scanner(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        CRectangleCutting solver = new CRectangleCutting();
        solver.solve(1, in, out);
        out.close();
    }

    static class CRectangleCutting {
        public void solve(int testNumber, Scanner in, PrintWriter out) {
            long w = in.nextLong(), h = in.nextLong(), x = in.nextLong(), y = in.nextLong();
//        if(h*Math.abs(w-2*x) < w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 0",ans));
//        }
//        if(h*Math.abs(w-2*x) == w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 1",ans));
//        }
//        if(h*Math.abs(w-2*x) > w*Math.abs(h-2*y)){
//            double ans = Math.min(w*y, w*(h-y));
//            out.println( String.format("%.6f 0",ans));
//        }
            double area;
            int d;
            area = ((double) w * (double) h) / 2.0d;
            if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            }
            out.println(String.format("%.6f %d", area, d));
        }

    }
}
 import java.io.OutputStream; OutputStream java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.PrintWriter; PrintWriter java.io import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        Scanner in = new Scanner(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        CRectangleCutting solver = new CRectangleCutting();
        solver.solve(1, in, out);
        out.close();
    }

    static class CRectangleCutting {
        public void solve(int testNumber, Scanner in, PrintWriter out) {
            long w = in.nextLong(), h = in.nextLong(), x = in.nextLong(), y = in.nextLong();
//        if(h*Math.abs(w-2*x) < w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 0",ans));
//        }
//        if(h*Math.abs(w-2*x) == w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 1",ans));
//        }
//        if(h*Math.abs(w-2*x) > w*Math.abs(h-2*y)){
//            double ans = Math.min(w*y, w*(h-y));
//            out.println( String.format("%.6f 0",ans));
//        }
            double area;
            int d;
            area = ((double) w * (double) h) / 2.0d;
            if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            }
            out.println(String.format("%.6f %d", area, d));
        }

    }
} Main public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        Scanner in = new Scanner(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        CRectangleCutting solver = new CRectangleCutting();
        solver.solve(1, in, out);
        out.close();
    } main {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        Scanner in = new Scanner(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        CRectangleCutting solver = new CRectangleCutting();
        solver.solve(1, in, out);
        out.close();
    } InputStream inputStream = System.in; inputStream System.in System System.in OutputStream outputStream = System.out; outputStream System.out System System.out Scanner in = new Scanner(inputStream); in new Scanner(inputStream) PrintWriter out = new PrintWriter(outputStream); out new PrintWriter(outputStream) CRectangleCutting solver = new CRectangleCutting(); solver new CRectangleCutting() solver.solve(1, in, out) solver.solve solver 1 in out out.close() out.close out String[] args args static class CRectangleCutting {
        public void solve(int testNumber, Scanner in, PrintWriter out) {
            long w = in.nextLong(), h = in.nextLong(), x = in.nextLong(), y = in.nextLong();
//        if(h*Math.abs(w-2*x) < w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 0",ans));
//        }
//        if(h*Math.abs(w-2*x) == w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 1",ans));
//        }
//        if(h*Math.abs(w-2*x) > w*Math.abs(h-2*y)){
//            double ans = Math.min(w*y, w*(h-y));
//            out.println( String.format("%.6f 0",ans));
//        }
            double area;
            int d;
            area = ((double) w * (double) h) / 2.0d;
            if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            }
            out.println(String.format("%.6f %d", area, d));
        }

    } CRectangleCutting public void solve(int testNumber, Scanner in, PrintWriter out) {
            long w = in.nextLong(), h = in.nextLong(), x = in.nextLong(), y = in.nextLong();
//        if(h*Math.abs(w-2*x) < w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 0",ans));
//        }
//        if(h*Math.abs(w-2*x) == w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 1",ans));
//        }
//        if(h*Math.abs(w-2*x) > w*Math.abs(h-2*y)){
//            double ans = Math.min(w*y, w*(h-y));
//            out.println( String.format("%.6f 0",ans));
//        }
            double area;
            int d;
            area = ((double) w * (double) h) / 2.0d;
            if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            }
            out.println(String.format("%.6f %d", area, d));
        } solve {
            long w = in.nextLong(), h = in.nextLong(), x = in.nextLong(), y = in.nextLong();
//        if(h*Math.abs(w-2*x) < w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 0",ans));
//        }
//        if(h*Math.abs(w-2*x) == w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 1",ans));
//        }
//        if(h*Math.abs(w-2*x) > w*Math.abs(h-2*y)){
//            double ans = Math.min(w*y, w*(h-y));
//            out.println( String.format("%.6f 0",ans));
//        }
            double area;
            int d;
            area = ((double) w * (double) h) / 2.0d;
            if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            }
            out.println(String.format("%.6f %d", area, d));
        } long w = in.nextLong() w in.nextLong() in.nextLong in h = in.nextLong() h in.nextLong() in.nextLong in x = in.nextLong() x in.nextLong() in.nextLong in y = in.nextLong(); y in.nextLong() in.nextLong in double area; area int d; d area = ((double) w * (double) h) / 2.0d area ((double) w * (double) h) / 2.0d ((double) w * (double) h) (double) w (double) h 2.0d if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            } w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0 h / 2 == y w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0 w / 2 == x w / 2 w 2 x w % 2 == 0 w % 2 w 2 0 h / 2 == y h / 2 h 2 y h % 2 == 0 h % 2 h 2 0 {
                d = 1;
            } d = 1 d 1 {
                d = 0;
            } d = 0 d 0 out.println(String.format("%.6f %d", area, d)) out.println out String.format("%.6f %d", area, d) String.format String "%.6f %d" area d int testNumber testNumber Scanner in in PrintWriter out out public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        Scanner in = new Scanner(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        CRectangleCutting solver = new CRectangleCutting();
        solver.solve(1, in, out);
        out.close();
    }

    static class CRectangleCutting {
        public void solve(int testNumber, Scanner in, PrintWriter out) {
            long w = in.nextLong(), h = in.nextLong(), x = in.nextLong(), y = in.nextLong();
//        if(h*Math.abs(w-2*x) < w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 0",ans));
//        }
//        if(h*Math.abs(w-2*x) == w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 1",ans));
//        }
//        if(h*Math.abs(w-2*x) > w*Math.abs(h-2*y)){
//            double ans = Math.min(w*y, w*(h-y));
//            out.println( String.format("%.6f 0",ans));
//        }
            double area;
            int d;
            area = ((double) w * (double) h) / 2.0d;
            if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            }
            out.println(String.format("%.6f %d", area, d));
        }

    }
} public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        Scanner in = new Scanner(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        CRectangleCutting solver = new CRectangleCutting();
        solver.solve(1, in, out);
        out.close();
    }

    static class CRectangleCutting {
        public void solve(int testNumber, Scanner in, PrintWriter out) {
            long w = in.nextLong(), h = in.nextLong(), x = in.nextLong(), y = in.nextLong();
//        if(h*Math.abs(w-2*x) < w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 0",ans));
//        }
//        if(h*Math.abs(w-2*x) == w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 1",ans));
//        }
//        if(h*Math.abs(w-2*x) > w*Math.abs(h-2*y)){
//            double ans = Math.min(w*y, w*(h-y));
//            out.println( String.format("%.6f 0",ans));
//        }
            double area;
            int d;
            area = ((double) w * (double) h) / 2.0d;
            if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            }
            out.println(String.format("%.6f %d", area, d));
        }

    }
} Main
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Scanner;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 *
 * @author Twinkle Twinkle Little Star
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        Scanner in = new Scanner(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        CRectangleCutting solver = new CRectangleCutting();
        solver.solve(1, in, out);
        out.close();
    }

    static class CRectangleCutting {
        public void solve(int testNumber, Scanner in, PrintWriter out) {
            long w = in.nextLong(), h = in.nextLong(), x = in.nextLong(), y = in.nextLong();
//        if(h*Math.abs(w-2*x) < w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 0",ans));
//        }
//        if(h*Math.abs(w-2*x) == w*Math.abs(h-2*y)){
//            double ans = Math.min(h*x, h*(w-x));
//            out.println( String.format("%.6f 1",ans));
//        }
//        if(h*Math.abs(w-2*x) > w*Math.abs(h-2*y)){
//            double ans = Math.min(w*y, w*(h-y));
//            out.println( String.format("%.6f 0",ans));
//        }
            double area;
            int d;
            area = ((double) w * (double) h) / 2.0d;
            if (w / 2 == x && w % 2 == 0 && h / 2 == y && h % 2 == 0) {
                d = 1;
            } else {
                d = 0;
            }
            out.println(String.format("%.6f %d", area, d));
        }

    }
}

