import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.FileInputStream;
import java.util.StringTokenizer;
import java.io.InputStream;
 
/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 */
public class bonus_petr {
    public static void main(String[] args) {
        InputStream inputStream;
        try {
            inputStream = new FileInputStream("bonus.in");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        OutputStream outputStream;
        try {
            outputStream = new FileOutputStream("bonus.out");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        InputReader_petr in = new InputReader_petr(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Bonus_petr_0 solver = new Bonus_petr_0();
        solver.solve(1, in, out);
        out.close();
    }
}
 
class Bonus_petr_0 {
    public void solve(int testNumber, InputReader_petr in, PrintWriter out) {
        int n = in.nextInt();
        int a = in.nextInt();
        int b = in.nextInt();
        out.println(getpr(n, a + 1, b, 0));
        out.println(getpr(n, a, b + 1, 1));
    }
 
    private double getpr(int n, int a, int b, int which) {
        if (a + b <= n) return 1.0;
        double[][] pr = new double[n + 1][n + 1];
        pr[0][0] = 1.0;
        for (int stage = 1; stage <= n; ++stage) {
            for (int olda = 0; olda <= n; ++olda) {
                double oldpr = pr[stage - 1][olda];
                if (oldpr == 0.0) continue;
                int oldb = stage - 1 - olda;
                double ra = a - olda;
                double rb = b - oldb;
                double pa = 2 * ra / (2 * ra + rb);
                double pb = rb / (2 * ra + rb);
                pr[stage][olda] += oldpr * pb;
                pr[stage][olda + 1] += oldpr * pa;
            }
        }
        double ret = 0;
        for (int resa = 0; resa <= n; ++resa) {
            double respr = pr[n][resa];
            int resb = n - resa;
            if (which == 0)
                ret += respr * resa / a;
            else
                ret += respr * resb / b;
        }
        return ret;
    }
}
 
class InputReader_petr {
    public BufferedReader reader;
    public StringTokenizer tokenizer;
 
    public InputReader_petr(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream));
        tokenizer = null;
    }
 
    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {
            try {
                tokenizer = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return tokenizer.nextToken();
    }
 
    public int nextInt() {
        return Integer.parseInt(next());
    }
 
    }
