Задача. «POBEDA-2014» Имя входного файла: pobeda.in Имя выходного файла: pobeda.out ...

0 голосов
173 просмотров

Задача. «POBEDA-2014»
Имя входного файла: pobeda.in
Имя выходного файла: pobeda.out
Ограничение по времени: 2 секунды
Ограничение по памяти: 256 мегабайт

Как известно, современные видеокарты умеют формировать изображения с использованием только треугольников. Видеокарта POBEDA-2014 не отстает от современных тенденций. Известно, что она умеет отображать только прямоугольные равнобедренные треугольники четырех типов ориентации, представленные на рисунках ниже. Изменять ориентацию этих треугольников видеокарта не может.
Длина катета каждого из представленных выше треугольников равна одному сантиметру. За один такт видеокарта не может отобразить более чем ai треугольников i-того типа. Необходимо определить максимально возможную длину стороны квадрата, который может быть изображен видеокартой на экране монитора за один такт. При этом квадрат должен быть расположен так, чтобы его стороны были параллельны краям монитора. Требуется написать программу, которая решает поставленную задачу.
Формат входного файла Первая строка входного файла содержит разделенные пробелами четыре целых
числа: a1, a2, a3, a4 (0 ≤ a1, a2, a3, a4 ≤ 1018). Входные данные могут превышать максимальные значения для 32 битного типа данных. Формат выходного файла Выходной файл должен содержать одно число – максимально возможную длину стороны квадрата.


Информатика (20 баллов) | 173 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Задача с регионального этапа прошлого года)
На паскале решение выглядит так:
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. Суммируем эти значения, берём корень и округляем в меньшую степень. 

(1.1k баллов)
0

а как прописать путь? На строке reset(i); пишет что путь не найден

0

Вы создали файл pobeda.in?

0

Ваше решение как бы правильное - но на acmp.ru не проходит 19 тест - у меня почему-то тоже