import static java.lang.Math.min;
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.StringTokenizer;
 
public class bonus_keka {
    private static void solve() throws IOException {
        int n = nextInt();
        int a = nextInt();
        int b = nextInt();
        out.println(ans(n, 2, a, 1, b));
        out.println(ans(n, 1, b, 2, a));
    }
     
    static double ans(int n, int mulMy, long totalMy, int mulOther, long totalOther) {
        double cur[] = new double[n + 1];
        double prev[] = new double[n + 1];
        for (int gotOther = (int) min(n, totalOther); gotOther >= 0; gotOther--) {
            for (int gotMy = (int) min(totalMy, n - gotOther); gotMy >= 0; gotMy--) {
                if (gotMy + gotOther == n) {
                    cur[gotMy] = 0;
                    continue;
                }
                long remOther = totalOther - gotOther;
                long remMy = totalMy - gotMy;
//              int rem = n - gotOther - gotMy;
                double win = (double) mulMy / (mulMy * (remMy + 1) + mulOther * remOther);
                double nowin = 0;
                double cMy = mulMy * remMy;
                double cOther = mulOther * remOther;
                if (remMy > 0) {
                    nowin += cMy / (cMy + cOther) * cur[gotMy + 1];
                }
                if (remOther > 0) {
                    nowin += cOther / (cMy + cOther) * prev[gotMy];
                }
                cur[gotMy] = win + (1 - win) * nowin;
            }
            double t[] = prev;
            prev = cur;
            cur = t;
        }
        return prev[0];
    }
 
    public static void main(String[] args) throws IOException {
        br = new BufferedReader(new FileReader("bonus.in"));
        out = new PrintWriter("bonus.out");
        solve();
        out.close();
    }
 
    static BufferedReader br;
    static PrintWriter out;
    static StringTokenizer st;
 
    static String nextToken() throws IOException {
        while (st == null || !st.hasMoreTokens()) {
            String line = br.readLine();
            if (line == null) {
                return null;
            }
            st = new StringTokenizer(line);
        }
        return st.nextToken();
    }
 
    static int nextInt() throws IOException {
        return Integer.parseInt(nextToken());
    }
 
    static long nextLong() throws IOException {
        return Long.parseLong(nextToken());
    }
}