import java.io.*;

/**
 * Copyright © 2018 Chris. All rights reserved.
 *
 * @author Chris
 * @see format
 */
public class Main {

    private static BufferedReader br;
    private static StreamTokenizer st;
    private static PrintWriter pw;

    static final int INF = 1000000007;
    static int MOD = (int) (1e9 + 7);


    private static void solve() throws IOException {
        long w = nextInt();
        long h = nextInt();
        long x = nextInt();
        long y = nextInt();
        double res = w * h / 2.0;
        int res2 = (x * 2 == w && y * 2 == h) ? 1 : 0;
        pw.println(res + " " + res2);
    }

    public static void main(String args[]) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StreamTokenizer(br);
        pw = new PrintWriter(new OutputStreamWriter(System.out));
        st.ordinaryChar('\''); //指定单引号、双引号和注释符号是普通字符
        st.ordinaryChar('\"');
        st.ordinaryChar('/');

        solve();
        pw.flush();
    }

    static String next(int len) throws IOException {
        int b = br.read();
        while (b == '\n' || b == ' ' || b == '\r' || b == '\t') {
            b = br.read();
        }
        char ch[] = new char[len];
        ch[0] = (char) b;
        int idx = 1;
        while (idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t') {
            ch[idx++] = (char) b;
        }
        return String.valueOf(ch).trim();
    }

    private static int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    private static double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    private static String[] nextSS(String reg) throws IOException {
        return br.readLine().split(reg);
    }

    private static String nextLine() throws IOException {
        return br.readLine();
    }
} import java.io.*; io.* java public class Main {

    private static BufferedReader br;
    private static StreamTokenizer st;
    private static PrintWriter pw;

    static final int INF = 1000000007;
    static int MOD = (int) (1e9 + 7);


    private static void solve() throws IOException {
        long w = nextInt();
        long h = nextInt();
        long x = nextInt();
        long y = nextInt();
        double res = w * h / 2.0;
        int res2 = (x * 2 == w && y * 2 == h) ? 1 : 0;
        pw.println(res + " " + res2);
    }

    public static void main(String args[]) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StreamTokenizer(br);
        pw = new PrintWriter(new OutputStreamWriter(System.out));
        st.ordinaryChar('\''); //指定单引号、双引号和注释符号是普通字符
        st.ordinaryChar('\"');
        st.ordinaryChar('/');

        solve();
        pw.flush();
    }

    static String next(int len) throws IOException {
        int b = br.read();
        while (b == '\n' || b == ' ' || b == '\r' || b == '\t') {
            b = br.read();
        }
        char ch[] = new char[len];
        ch[0] = (char) b;
        int idx = 1;
        while (idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t') {
            ch[idx++] = (char) b;
        }
        return String.valueOf(ch).trim();
    }

    private static int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    private static double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    private static String[] nextSS(String reg) throws IOException {
        return br.readLine().split(reg);
    }

    private static String nextLine() throws IOException {
        return br.readLine();
    }
} Main private static BufferedReader br; br private static StreamTokenizer st; st private static PrintWriter pw; pw static final int INF = 1000000007; INF 1000000007 static int MOD = (int) (1e9 + 7); MOD (int) (1e9 + 7) 1e9 7 private static void solve() throws IOException {
        long w = nextInt();
        long h = nextInt();
        long x = nextInt();
        long y = nextInt();
        double res = w * h / 2.0;
        int res2 = (x * 2 == w && y * 2 == h) ? 1 : 0;
        pw.println(res + " " + res2);
    } solve {
        long w = nextInt();
        long h = nextInt();
        long x = nextInt();
        long y = nextInt();
        double res = w * h / 2.0;
        int res2 = (x * 2 == w && y * 2 == h) ? 1 : 0;
        pw.println(res + " " + res2);
    } long w = nextInt(); w nextInt() nextInt long h = nextInt(); h nextInt() nextInt long x = nextInt(); x nextInt() nextInt long y = nextInt(); y nextInt() nextInt double res = w * h / 2.0; res w * h / 2.0 w * h w h 2.0 int res2 = (x * 2 == w && y * 2 == h) ? 1 : 0; res2 (x * 2 == w && y * 2 == h) ? 1 : 0 (x * 2 == w && y * 2 == h) x * 2 == w x * 2 x 2 w y * 2 == h y * 2 y 2 h 1 0 pw.println(res + " " + res2) pw.println pw res + " " + res2 res + " " + res2 res " " res2 public static void main(String args[]) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StreamTokenizer(br);
        pw = new PrintWriter(new OutputStreamWriter(System.out));
        st.ordinaryChar('\''); //指定单引号、双引号和注释符号是普通字符
        st.ordinaryChar('\"');
        st.ordinaryChar('/');

        solve();
        pw.flush();
    } main {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StreamTokenizer(br);
        pw = new PrintWriter(new OutputStreamWriter(System.out));
        st.ordinaryChar('\''); //指定单引号、双引号和注释符号是普通字符
        st.ordinaryChar('\"');
        st.ordinaryChar('/');

        solve();
        pw.flush();
    } br = new BufferedReader(new InputStreamReader(System.in)) br new BufferedReader(new InputStreamReader(System.in)) st = new StreamTokenizer(br) st new StreamTokenizer(br) pw = new PrintWriter(new OutputStreamWriter(System.out)) pw new PrintWriter(new OutputStreamWriter(System.out)) st.ordinaryChar('\'') st.ordinaryChar st '\'' st.ordinaryChar('\"') st.ordinaryChar st '\"' st.ordinaryChar('/') st.ordinaryChar st '/' solve() solve pw.flush() pw.flush pw String args[] args static String next(int len) throws IOException {
        int b = br.read();
        while (b == '\n' || b == ' ' || b == '\r' || b == '\t') {
            b = br.read();
        }
        char ch[] = new char[len];
        ch[0] = (char) b;
        int idx = 1;
        while (idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t') {
            ch[idx++] = (char) b;
        }
        return String.valueOf(ch).trim();
    } next {
        int b = br.read();
        while (b == '\n' || b == ' ' || b == '\r' || b == '\t') {
            b = br.read();
        }
        char ch[] = new char[len];
        ch[0] = (char) b;
        int idx = 1;
        while (idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t') {
            ch[idx++] = (char) b;
        }
        return String.valueOf(ch).trim();
    } int b = br.read(); b br.read() br.read br while (b == '\n' || b == ' ' || b == '\r' || b == '\t') {
            b = br.read();
        } b == '\n' || b == ' ' || b == '\r' || b == '\t' b == '\r' b == '\n' || b == ' ' || b == '\r' || b == '\t' b == '\n' b '\n' b == ' ' b ' ' b == '\r' b '\r' b == '\t' b '\t' {
            b = br.read();
        } b = br.read() b br.read() br.read br char ch[] = new char[len]; ch new char[len] len ch[0] = (char) b ch[0] ch 0 (char) b int idx = 1; idx 1 while (idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t') {
            ch[idx++] = (char) b;
        } idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t' b != '\r' b != '\n' idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t' idx < len idx len (b = br.read()) != ' ' (b = br.read()) b br.read() br.read br ' ' b != '\n' b '\n' b != '\r' b '\r' b != '\t' b '\t' {
            ch[idx++] = (char) b;
        } ch[idx++] = (char) b ch[idx++] ch idx++ idx (char) b return String.valueOf(ch).trim(); String.valueOf(ch).trim() String.valueOf(ch).trim String.valueOf(ch) String.valueOf String ch int len len private static int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    } nextInt {
        st.nextToken();
        return (int) st.nval;
    } st.nextToken() st.nextToken st return (int) st.nval; (int) st.nval st st.nval private static double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    } nextDouble {
        st.nextToken();
        return st.nval;
    } st.nextToken() st.nextToken st return st.nval; st.nval st st.nval private static String[] nextSS(String reg) throws IOException {
        return br.readLine().split(reg);
    } nextSS {
        return br.readLine().split(reg);
    } return br.readLine().split(reg); br.readLine().split(reg) br.readLine().split br.readLine() br.readLine br reg String reg reg private static String nextLine() throws IOException {
        return br.readLine();
    } nextLine {
        return br.readLine();
    } return br.readLine(); br.readLine() br.readLine br public class Main {

    private static BufferedReader br;
    private static StreamTokenizer st;
    private static PrintWriter pw;

    static final int INF = 1000000007;
    static int MOD = (int) (1e9 + 7);


    private static void solve() throws IOException {
        long w = nextInt();
        long h = nextInt();
        long x = nextInt();
        long y = nextInt();
        double res = w * h / 2.0;
        int res2 = (x * 2 == w && y * 2 == h) ? 1 : 0;
        pw.println(res + " " + res2);
    }

    public static void main(String args[]) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StreamTokenizer(br);
        pw = new PrintWriter(new OutputStreamWriter(System.out));
        st.ordinaryChar('\''); //指定单引号、双引号和注释符号是普通字符
        st.ordinaryChar('\"');
        st.ordinaryChar('/');

        solve();
        pw.flush();
    }

    static String next(int len) throws IOException {
        int b = br.read();
        while (b == '\n' || b == ' ' || b == '\r' || b == '\t') {
            b = br.read();
        }
        char ch[] = new char[len];
        ch[0] = (char) b;
        int idx = 1;
        while (idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t') {
            ch[idx++] = (char) b;
        }
        return String.valueOf(ch).trim();
    }

    private static int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    private static double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    private static String[] nextSS(String reg) throws IOException {
        return br.readLine().split(reg);
    }

    private static String nextLine() throws IOException {
        return br.readLine();
    }
} public class Main {

    private static BufferedReader br;
    private static StreamTokenizer st;
    private static PrintWriter pw;

    static final int INF = 1000000007;
    static int MOD = (int) (1e9 + 7);


    private static void solve() throws IOException {
        long w = nextInt();
        long h = nextInt();
        long x = nextInt();
        long y = nextInt();
        double res = w * h / 2.0;
        int res2 = (x * 2 == w && y * 2 == h) ? 1 : 0;
        pw.println(res + " " + res2);
    }

    public static void main(String args[]) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StreamTokenizer(br);
        pw = new PrintWriter(new OutputStreamWriter(System.out));
        st.ordinaryChar('\''); //指定单引号、双引号和注释符号是普通字符
        st.ordinaryChar('\"');
        st.ordinaryChar('/');

        solve();
        pw.flush();
    }

    static String next(int len) throws IOException {
        int b = br.read();
        while (b == '\n' || b == ' ' || b == '\r' || b == '\t') {
            b = br.read();
        }
        char ch[] = new char[len];
        ch[0] = (char) b;
        int idx = 1;
        while (idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t') {
            ch[idx++] = (char) b;
        }
        return String.valueOf(ch).trim();
    }

    private static int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    private static double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    private static String[] nextSS(String reg) throws IOException {
        return br.readLine().split(reg);
    }

    private static String nextLine() throws IOException {
        return br.readLine();
    }
} Main
import java.io.*;

/**
 * Copyright © 2018 Chris. All rights reserved.
 *
 * @author Chris
 * @see format
 */
public class Main {

    private static BufferedReader br;
    private static StreamTokenizer st;
    private static PrintWriter pw;

    static final int INF = 1000000007;
    static int MOD = (int) (1e9 + 7);


    private static void solve() throws IOException {
        long w = nextInt();
        long h = nextInt();
        long x = nextInt();
        long y = nextInt();
        double res = w * h / 2.0;
        int res2 = (x * 2 == w && y * 2 == h) ? 1 : 0;
        pw.println(res + " " + res2);
    }

    public static void main(String args[]) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StreamTokenizer(br);
        pw = new PrintWriter(new OutputStreamWriter(System.out));
        st.ordinaryChar('\''); //指定单引号、双引号和注释符号是普通字符
        st.ordinaryChar('\"');
        st.ordinaryChar('/');

        solve();
        pw.flush();
    }

    static String next(int len) throws IOException {
        int b = br.read();
        while (b == '\n' || b == ' ' || b == '\r' || b == '\t') {
            b = br.read();
        }
        char ch[] = new char[len];
        ch[0] = (char) b;
        int idx = 1;
        while (idx < len && (b = br.read()) != ' ' && b != '\n' && b != '\r' && b != '\t') {
            ch[idx++] = (char) b;
        }
        return String.valueOf(ch).trim();
    }

    private static int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    private static double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    private static String[] nextSS(String reg) throws IOException {
        return br.readLine().split(reg);
    }

    private static String nextLine() throws IOException {
        return br.readLine();
    }
}
