sequência de conversão implícita na sobrecarga de função

Não entendo como o compilador escolhe os melhores candidatos. Por exemplo, vamos ter o seguinte código:

int function(double, int, int){...}
int function(int, double, double){...}

Se a segunda função precisar converter duas variáveis e a primeira precisar converter apenas uma variável, como a primeira não será escolhida? Por que essa é uma situação ambígua?

questionAnswers(1)

yourAnswerToTheQuestion