Program zadacha;
var a,b,c:integer;
d:real;
begin
read (a,b);
c:=a+b;
c:=c mod 2;
if c = 0
then d:=a/b
else d:= b*a;
write(d);
end.
Выполним несколько первых шагов алгоритма:
2 "7", 82 "4"
4 "7", 78 "4"
Очевидно, что из 86 "4" получим в конце концов 42 "7" и 2 "4"
(42=84/4*2).
Следующий этап:
2 "4", 38 "7", 2 "4"
4 "4", 34 "7", 2 "4"
36 "7", 2 "4"
...
30 "7", 2 "4"
...
6 "7", 2 "4"
2 "4", 2 "7", 2 "4"
Таким образом, из 86 "4" получится строка "447744"
примитивные типы, в том числе:
логический тип
целые типы
вещественные типы
ссылочные типы
опциональные типы
обнуляемые типы
Композитные типы, в том числе:
массивы
записи
кортежи
абстрактные типы (АТД, англ. ADT)
алгебраические типы
вариантные типы
подтипы
унаследованные типы
объектные типы, то есть объекты, значением которых являются типы — например, переменные типов
частичные типы
рекурсивные типы
функциональные типы, например бинарные функции
универсально квантифицированные типы, такие как параметрические типы
экзистенциально квантифицированные, такие как модули
зависимые типы — типы, зависящие от термов (значений)
уточняющие типы — типы, идентифицирующие подмножества других типов
Предопределённые типы (являющиеся фактически структурными, но предоставляемые на правах примитивных) для удобства промышленных разработок, такие как «дата», «время», «валюта» и др.
Примера оформление не прикреплено, значит решаем как умеем
HDD = 320*1024 Mb = 327680 Mb
Кол-во = 327680 / 700 шт = 469 шт (округляем в большую сторону)
Вес = 469 * 15 г = 7035 г
//Pascal ABC.NET v3.1 сборка 1172
Var
s,sub,sub1,res:string;
i,j,k,q,m,n,n1,min1,min:integer;
ar:array of string;
ar1:array of string;
c:char;
b:boolean;
begin
readln(s);
delete(s,pos('0',s),length(s)-pos('0',s)+1);
b:=false;
k:=0;
m:=length(s);
i:=0;
n:=0;
while i<>m do
begin;
inc(i);
for j:=i to m do
begin;
if s[i]=s[j] then inc(k);
if k=2 then break;
end;
if k=2 then
begin;
c:=s[i];
inc(n);
setlength(ar,n+1);
ar[n]:=c;
i:=0;
for q:=1 to 2 do
delete(s,pos(c,s),1);
end;
k:=0;
m:=length(s);
end;
if n<>0 then b:=true;
i:=0;
k:=0;
n1:=0;
m:=length(s);
while i<>m do
begin;
inc(i);
for j:=i to m do
if s[i]=s[j] then inc(k);
if k=1 then
begin;
c:=s[i];
inc(n1);
setlength(ar1,n1+1);
ar1[n1]:=c;
i:=0;
while pos(c,s)<>0 do
delete(s,pos(c,s),1);
end;
k:=0;
m:=length(s);
end;
for i:=1 to n do
sub+=ar[i];
writeln(sub);
min:=2147483647;
for i:=1 to n do
begin;
if strtoint(sub)<min then
min:=strtoint(sub);
c:=sub[length(sub)];
for j:=length(sub)-1 downto 1 do
sub[j+1]:=sub[j];
sub[1]:=c;
end;
min1:=2147483647;
for i:=1 to n1 do
if strtoint(ar1[i])<min1 then min1:=strtoint(ar1[i]);
if b=false then
begin;
writeln(min1);
exit;
end;
sub1:=inttostr(min1);
sub:=inttostr(min);
res:=sub+sub1;
if length(sub)<>0 then
for i:=1 to length(sub) div 2 do
begin
c:=sub[i];
sub[i]:=sub[length(sub)-i+1];
sub[length(sub)-i+1]:=c;
end;
res:=res+sub;
writeln(res);
end.