Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Конкурсы и Олимпиады по Машинному программированию (КОМП) Разбор задачи 1


 Первые участники преодолели уровень 5. Скоро будем завершать конкурс методом "засушивания". Это значит, что каждый день будет закрываться по одному уровню. Поскольку скоро лето и погода теплеет, то закрытие уровня называется "засушивание". :-)


Рейтинг участников 

Уровень 5

Смирнов Григорий Сергеевич, Звонарёв Антон Сергеевич.

Уровень 4

Гатин Руслан Музахитович, Кибардин Алексей Андреевич, Фатеев Арсений Евгеньеви, Карета Максим Станиславович.

Уровень 3


Уровень 2

Чернов Николай Алексеевич, Корепанов Михаил Юрьевич, Мирзасалихов Ранис Альбертович.

Уровень 1

Рура Виталий Александрович, Кретов Алексей Константинович, Муратов Дамир Фаритович, Ахунзянов Расим Ралифович, Иванов Григорий Владимирович, Новикова Алина Дмитриевна, Долотказин Юрий Владимирович, Драный Валентин Валерьевич,

Разбор задачи уровня 2

В этой задаче положение домов зависит от расстояния до озера. Оно может меняться от 0 (когда дома стоят на углах) и до 2000 (на прямой между домами озера нет). От положения домов зависит, с какой строны обходить озеро ближе. Есть два варианта.

Вариант первый. Обходить со стороны угла.

Вариант второй. Обходить со стороны основания.

Думаю из программы и комментариев будет всё ясно.

program task1;
var
h,
a,
x,
y,
P1,
P2 : real;
begin
readln(h); {Расстояние до озера}
a:=4000; {Сторона озера}
y:=h*sqrt(3); {Расстояние до основания}
x:=sqrt(sqr(a/2)+3*sqr(a/2-h)); {Расстояние до угла}
P1:=a+2*y; {Длина пути через основание}
P2:=2*x; {Длина пути через угол}
if P1 < P2 then Writeln(P1/1000:2:2)
else Writeln(P2/1000:2:2)
end.

Можно записать и другие формулы.

 




Автор: Пупышев Вячеслав Викторович   
e-mail: pvv@uni.udm.ru   
Web: http://colymp.da.ru   

В избранное