Дистанционная подготовка: Не получается сдать на 100 баллов
Не получается сдать на 100 баллов
от Юрий Комаров - Пятница 7 Февраль 2014, 15:14
112036. POBEDA-2014
  var a1,a2,a3,a4:real;
b:real;


begin
read(a1,a2,a3,a4);
If (a1>=a2) then
If (a3>=a4) then
b:=trunc(sqrt(a2+a4))
else
b:=trunc(sqrt(a2+a3))
else
If (a3>=a4) then b:=trunc(sqrt(a1+a4)) else b:=trunc(sqrt(a1+a3));
Write(b);
end.


Мое решение проходит только на 90 баллов. А как сделать на 100 я не знаю.
Re: Не получается сдать на 100 баллов
от Peter Cherepanov - Суббота 8 Февраль 2014, 00:15
  Скорее всего при вычислении корня и при преобразовании целых чисел в действительные теряется точность.
Попробуйте всё сделать в целых числах.
Re: Не получается сдать на 100 баллов
от Юрий Комаров - Суббота 8 Февраль 2014, 06:45
  Но ведь извлечение корня можно делать только из вещественного числа?
Re: Не получается сдать на 100 баллов
от Peter Cherepanov - Суббота 8 Февраль 2014, 08:48
  Пишите свою процедуру. Вам нужно найти наибольшее целое число, квадрат которого не превосходит данное число.
Re: Не получается сдать на 100 баллов
от Денис Сидоров - Понедельник 10 Февраль 2014, 09:37
  У меня бинпоиск на 95 проходит
Re: Не получается сдать на 100 баллов
от Peter Cherepanov - Вторник 11 Февраль 2014, 12:19
  А у меня -- на 100%. Все сделано как было описано ранее.
Типа unsigned long long вполне хватает.
Re: Не получается сдать на 100 баллов
от Илья Воробьев - Пятница 23 Январь 2015, 22:01
  У меня с extended на 100 баллов работает
Re: Не получается сдать на 100 баллов
от Владислав Старателев - Суббота 24 Январь 2015, 16:33
  В abc нереально получить сотку в этой задаче, нету в нем extended'а, а unint64'а и real'а не хватает.
Re: Не получается сдать на 100 баллов
от Иван Жаров - Понедельник 15 Июнь 2015, 10:14
  Если число больше 10**9, то используй бинарный поиск по ответу, а если меньше, то вычисляй квадрат, точность не теряется.