Задача с регионального этапа прошлого года)
На паскале решение выглядит так:
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. Суммируем эти значения, берём корень и округляем в меньшую степень.
Общее количество пикселей: 128*256= 32768.
Определим глубину кодирования изображения, для этого разделим объем изображения в битах на количество пикселей.
(28*1024*8)/32768= 7 бит
Количество цветов в палитре N определим из формулы: N=2^i
N=2^7= 128
Ответ: 128 цветов
Var
A,Min:integer;
N:byte;
Begin
Min:=30001;
Read(N);
For N:= 1 to N do
Begin
Read(A);
if (A>0)and(A mod 5 = 0)and(A < Min) then Min:=A;
End;
Write(Min)
End.
#include <iostream>
using namespace std;
int main(){
int a,b,c,d,o=0;
cin>>a>>b>>c>>d;
for (int i=10000; i<=99999;i++)
if (i % a ==b && i % c == d)
{
cout<<i<<' ';
o=1;
}
if (o==0)
cout<<-1;
}