1011. Кондукторы

 

В Екатеринбурге количество кондукторов составляет строго больше P% и строго меньше Q% от всего населения города. Найти минимально возможное число людей в Екатеринбурге.

 

Вход. Два числа P и Q (0.01 £ P, Q £ 99.99), заданые с двумя десятичными знаками после запятой.

 

Выход. Вывести минимально возможное число людей в Екатеринбурге.

 

Пример входа

13

14.1

 

Пример выхода

15

 

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Пусть x – искомое количество людей в городе. Тогда строго между значениями p * x / 100 и q * x / 100 должно находиться целое число. То есть должно выполняться неравенство:

  > 0

Искомое значение x ищем перебором натуральных чисел, начиная с единицы.

 

Пример

Если p = 13, q = 14.1, то выбрав x = 15, получим:

 = =  [1.95] = 1,  =  = [2.115] = 2

Значения целых частей выражений различны.

 

Реализация алгоритма

Установим допустимое значение ошибки при округлении равным 10-10 .

 

#define EPS 1e-10

 

Для каждой входной пары p, q перебором ищем x, для которого строго между p * x / 100 и q * x / 100 находится целое число.

 

scanf("%lf %lf",&p,&q);

x = 1;

while(1)

{

  px = p*x; qx = q*x;

  if ((int)(qx/100 - EPS) - (int)(px/100 + EPS) > 0) break;

  x++;

}

printf("%d\n",x);