Если ты пишешь на другом языке программирования, то могу коротко рассказать суть решения. Большой квадрат со стороной x получается из x^2 маленьких квадратом, которые состоят из двух прямоугольных треугольников. Такие квадраты можно составить из треугольников a1 и a2 или a3 и a4. Поэтому берём минимальное значение из a1 и a2 и минимальное из a3 и a4. Суммируем эти значения, берём корень и округляем в меньшую степень.
На паскале решение выглядит так:
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. Суммируем эти значения, берём корень и округляем в меньшую степень.
#include
#include
int main()
{
int n;
int cnt = 0;
std: : cin > > n;
int **arr = new int*[n];
for(int i=0; i
{
arr[i] = new int[n];
for(int j=0; j
{
std: : cin > > arr[i][j];
//arr[i][j] = ++cnt;
}
}
cnt = 0;
while(cnt < n)
{
for(int i=0; i< (n-cnt); i++) std: : cout < < std: : setw(2) < < arr[cnt][i] < < " ";
std: : cout < < std: : endl;
cnt++;
}
for(int i=0; i
delete [] arr[i];
delete [] arr;
arr = nullptr;
system("pause");
return 0;
}