В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Умницка1
Умницка1
13.01.2022 18:32 •  Информатика

«pobeda-2014» имя входного файла: pobeda.in имя выходного файла: pobeda.out ограничение по времени: 2 секунды ограничение по памяти: 256 мегабайт как известно, современные видеокарты умеют формировать изображения с использованием только треугольников. видеокарта pobeda-2014 не отстает от современных тенденций. известно, что она умеет отображать только прямоугольные равнобедренные треугольники четырех типов ориентации, представленные на рисунках ниже. изменять ориентацию этих треугольников видеокарта не может. длина катета каждого из представленных выше треугольников равна одному сантиметру. за один такт видеокарта не может отобразить более чем ai треугольников i-того типа. необходимо определить максимально возможную длину стороны квадрата, который может быть изображен видеокартой на экране монитора за один такт. при этом квадрат должен быть расположен так, чтобы его стороны были параллельны краям монитора. требуется написать программу, которая решает поставленную . формат входного файла первая строка входного файла содержит разделенные пробелами четыре целых числа: a1, a2, a3, a4 (0 ≤ a1, a2, a3, a4 ≤ 1018). входные данные могут превышать максимальные значения для 32 битного типа данных. формат выходного файла выходной файл должен содержать одно число – максимально возможную длину стороны квадрата.

Показать ответ
Ответ:
Anyablack11
Anyablack11
20.07.2020 21:47
Задача с регионального этапа года)
На паскале решение выглядит так:
var
s,a1,a2,a3,a4:int64;
i,o:text;

function min(x,y:int64):int64;
begin
  if x>y then
   min:=y else
    min:=x;
end;

begin
assign(i,'pobeda.in');
reset(i);
read(i,a1,a2,a3,a4);
close(i);
s:=min(a1,a2)+min(a3,a4);
assign(o,'pobeda.out');
rewrite(o);
writeln(o,trunc(sqrt(s)));
close(o);
end.

Если ты пишешь на другом языке программирования, то могу коротко рассказать суть решения. Большой квадрат со стороной x получается из x^2 маленьких квадратом, которые состоят из двух прямоугольных треугольников. Такие квадраты можно составить из треугольников a1 и a2 или a3 и a4. Поэтому берём минимальное значение из a1 и a2 и минимальное из a3 и a4. Суммируем эти значения, берём корень и округляем в меньшую степень. 
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота