По условию на каждый этаж нужно ровно одному магу.
Пусть n - искомый (самый выгодный этаж для остановки), тогда магу живущему на n этаже не придется идти ни вверх, ни вниз.
Вверх нужно подняться 2020-n магам, на на 1, 2, 3, …, 2021-n этажей соответственно. Вниз придётся спускаться n-1 магу, на 1,2,3,…, n-1 этажей.
Подсчитаем общее количество неудовольствий с учётом того, что маги не любят подниматься вверх в двойне.
Заметим, что минимум полученного квадратного трёхчлена достигается в точке n= . В силу того, что n – целое, а также парабола имеет ось симметрии, лифт должен подняться на 1441 этаж (минимум точки 1440,52)округляем до целого.
ответ:1441
P.S. не уверен, что это так, но в принципе, должно быть правильно
USES CRT;
VAR m1,m2,n,n1,n2,n3,n4,n5,n6,s1,s2:LongInt;
BEGIN
ClrScr;
ReadLn(n);
m1:=n;
n1:=m1 div 100;
n2:=m1 mod 10;
n3:=(m1-n1*100-n2) div 10;
if n1=n2 then if n1=n3 then writeln('vse =');
if n1=n2 then writeln('1 i 3 =');
if n2=n3 then writeln('2 i 3 =');
if n1=n3 then writeln('1 i 2 =')
else writeln('<>');
END.
Проверяйте, что непонятно - спрашивайте.
Можно чуть поправить вывод, чтобы когда vse =, не вылезали 1 i 3, 1 i 2, 2 i 3.
Да и вообще writeln'ов можно наставить и переменные назвать покрасивше. но это уж вы сами, думаю, справитесь. В VAR у меня тоже есть лишние переменные, переделывал старый свой код наспех =)
Всего хорошего.