Program ip;
var s,s1:string;
i,j,x,err:integer;
f:boolean;
begin
readln(s);
i:=1; j:=1; f:=true;
while (j<4) and f do
begin
while s[i]<>'.' do
begin
s1:=s1+s[i];
inc(i);
end;
val(s1,x,err);
f:=x<256;
delete(s1,1,length(s1));
inc(j);
end;
if f then
begin
while i<=length(s1) do
begin
s1:=s1+s[i];
inc(i);
end;
f:=x<256;
end;
if f then writeln(1) else writeln(0);
<span>end.</span>
это все деление на 3: 81,27,9,3. на каждую цифру по 2 взвешивания.
ответ:8
===== PascalABC.NET =====
begin
var (s, n) := ReadInteger2('Введите S и N:');
var r := 0;
for var m10 := 0 to S div 10 do
begin
for var m5 := 0 to (S - 10 * m10) div 5 do
begin
if m10 + m5 > N then
break;
for var m2 := 0 to (S - 10 * m10 - 5 * m5) div 2 do
begin
if m10 + m5 + m2 > N then
break;
for var m1 := 0 to S - 10 * m10 - 5 * m5 - 2 * m2 do
begin
if m10 + m5 + m2 + m1 > N then
break;
if (m10 * 10 + m5 * 5 + m2 *2 + m1 = s) and
(m10 + m5 + m2+ m1 = N) then
begin
$'{m10} x 10 + {m5} x 5 + {m2} x 2 + {m1} x 1'.Println;
Inc(r)
end
end
end
end
end;
if r > 0 then
Println('Найдено вариантов размена:', r)
else
Println('Вариантов такого размена нет')
end.
0,00025 кбайт = 0,25 байт = 2 бит