<u>PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var n:=ReadInteger;
var s:=n.ToString;
var d:=s[s.Length-1];
s.Where(c->c>d).Count.Println
end.
<u>Пример</u>
15334
2
<h3>PascalABC.NET 3.4.2, сборка 1863 от 10.11.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
function Conv(s: string): string;
begin
var d := s.ToCharArray;
var (i, found) := (d.High, False);
while i >= 1 do
if d[i] > d[i - 1] then
begin
found := True;
break
end
else i -= 1;
if found then
begin
s := s[:i];
var c := d[i - 1];
d := d[i - 1:];
d.Sort;
var j := d.IndexOf(c) + 1;
s += (d[j] + d?[:j] + d?[j + 1:]).JoinIntoString
end
else s := '-';
Result := s
end;
begin
var ms := Arr('1890', '83849', '126631', '146531', '32749972');
foreach var s in ms do
Conv(s).Println
end.
<h2>1908</h2><h2>83894</h2><h2>131266</h2><h2>151346</h2><h2>32772499</h2>
Var ar:array[1..10] of integer;
k,i,m:integer;
begin;
randomize;
k:=1;writeln('Array:');
for i:=1 to 10 do
begin;
ar[i]:=random(0,15);
if odd(i)=false then k:=k*ar[i];
write(ar[i]:4);
end;
writeln;
writeln('Result:',k);
if odd(k) then writeln('Yes') else writeln('No');
end.
<span>
//Мала вероятность того, что вернёт Yes, поэтому прикрутил Result
Вывод с 300-400 запуска:
Array:
9 15 8 15 5 3 0 15 3 9
Result:91125
Yes<span>
</span></span>
10кб*8*1024=81920бит
40*64=2560 всего символов на 1 странице
81920/2560=32 страницы
Ясно, что канал АВ - медленный, поэтому передавать надо сначала
с А на С, а потом с С на В.
1260 МБ с компьютера А будут переданы на компьютер С за
1260/11 = 114,5 = 115 с.
,Но компьютер С начнет передавать на В информацию сразу, как только будет ее получать. За эти же 115 с будет передано
115*9 = 1035 МБ.
Остальные 1260 - 1035 = 225 МБ будут переданы еще за
225/9 = 25 с.
Итого на оба компьютера В и С информация будет передана за
115 + 25 = 140 с
Ответ: 140.