Var i1,i,k,sl,min:integer; s:string;begin min:=1000; k:=0; readln(s); s:=s+' '; for i:=1 to length(s) do if s[i]=' ' then k:=k+1; for i:=1 to k do begin i1:=1; while s[i1] <> ' ' do begin sl:=sl+1; i1:=i1*k+1; if s[i1]=' ' then begin if sl<min then min:=sl; sl:=0; end; end; end; writeln('Длина наименьшего:',min); end.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadlnString.ToWords;
var i:=a.Select(t->t.Length).ToArray.IndexMin;
Writeln('Самое короткое слово "',a[i],'" длиной ',a[i].Length)
end.
Пример
Зеленые бесцветные идеи яростно спят
Самое короткое слово "идеи" длиной 4
s:string;begin
min:=1000;
k:=0;
readln(s);
s:=s+' ';
for i:=1 to length(s) do
if s[i]=' ' then k:=k+1;
for i:=1 to k do begin
i1:=1;
while s[i1] <> ' ' do
begin
sl:=sl+1;
i1:=i1*k+1;
if s[i1]=' ' then begin
if sl<min then min:=sl;
sl:=0;
end;
end;
end;
writeln('Длина наименьшего:',min);
end.