Социальная дистанция Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
В условиях распространения коронавирусной инфекции очень важно соблюдать социальную дистанцию, особенно во время обеда. Администрация курортного отеля хочет разместить большую компанию отдыхающих во время обеда за круглым столом. Для каждого отдыхающего известно минимальное расстояние по окружности стола, которое должно отделять его от двух ближайших соседей, чтобы он чувствовал себя защищенным.
Администрация отеля может рассаживать отдыхающих в том порядке, в котором считает нужным. Напишите программу, которая определяет минимальную длину окружности стола, необходимую для рассадки всех отдыхающих с соблюдением социальной дистанции.
Формат ввода
В первой строке записано целое число – количество отдыхающих n (1 ≤ n ≤ 105). Далее идут n строк. В каждой строке записано целое число di – минимальное требуемое расстояние по окружности до соседей для i-го отдыхающего (1 ≤ di ≤ 109).
Формат вывода
Выведите одно целое число – минимальную длину окружности стола, необходимую для рассадки всех отдыхающих.
Пример
Ввод Вывод
3
4
6
5
17
Примечания
В приведенном выше примере необходимо разместить за столом 3 человека: первый хочет сидеть не ближе 4 от своих соседей, второй не ближе 6, третий не ближе 5. Одно из возможных расположений изображено снизу: между первым и третьим 5, между первым и вторым 6, между вторым и третьим 6. Вся длина окружности при этом равно 17. Можно разместить гостей и другими , но добиться длины окружности меньше 17 не удастся.
Формулы площадей квадрата S₁ и круга S₂ известны, что легко позволяет нам найти нужное условие.
Если нужно, чтобы случай, когда квадрат вписан в круг тоже учитывался, строгое неравенство следует заменить нестрогим.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
var s1:=ReadReal('Площадь квадрата');
var s2:=ReadReal('Площадь круга');
if pi*s1<2*s2 then Writeln('Квадрат умещается в круге')
else Writeln('Квадрат не умещается в круге')
end.
Тестовое решение:
Площадь квадрата 24.6
Площадь круга 28.4
Квадрат не умещается в круге
//Первый ввод - число, второй - система счисления
//Pascal ABC.NET v3.0
var
a,i,b,r,n,j,bug:integer;
s,se,slo,slof:string;
procedure preob(var a,b,n:integer; var se:string);
begin
repeat
b:=a mod n;
a:=a div n;
str(b,se);
s+=se;
until (a<=n-1);
end;
begin
readln(slo);
readln(n);
for j:=1 to length(slo) do
begin;
a:=ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i:=1 to length(s) div 2 do
begin;
se:=s[i];
s[i]:=s[length(s)-i+1];
s[length(s)-i+1]:=se[1];
end;
write(s,'-');
slof:=slof+s;
delete(s,1,length(s));
end;
end.
//Слово Программа она кодирует как 11001111-11110000-11101110-11100011-11110000-11100000-11101100-11101100-11100000-