Для кабинета информатики нужно 20 компьютеров. Для кабинета начальных классов нужно 30 одноместны(-х, -е) парт(-ы).
Для кабинета математики нужна 1 доска.
Для кабинета биологии нужно 22 стола.
Для кабинета физики нужны 2 доски.
Для кабинета информатики нужно 36 столов.
Для кабинета биологии нужен 1 компьютер.
Для кабинета информатики нужна 1 урна.
Для кабинета начальных классов нужен 1 аквариум.
Для кабинета биологии нужен 1 экран.
Для кабинета физики нужна 1 урна.
Для кабинета математики нужно 20 столов.
Определи, сколько всего единиц оборудования каждого вида должна закупить школа.
Внимание! Если программа не работает, обновите версию!
procedure Preobraz(var Stroka:string);
begin
var bq:=new Queue<(integer,integer)>;
foreach var m in Stroka.Matches('\s+') do
bq.Enqueue((m.Index,m.Length));
var wq:=new Queue<(integer,string)>;
foreach var m in Stroka.Matches('\S+') do
if m.Value.Any(t->t in ['0'..'9']) then wq.Enqueue((m.Index,''))
else wq.Enqueue((m.Index,m.Value));
Stroka:='';
var pbi,pwi:integer;
while (bq.Count>0) and (wq.Count>0) do begin
(pbi,pwi):=(bq.Peek[0],wq.Peek[0]);
if pbi<pwi then begin
Stroka:=Stroka+bq.Peek[1]*' ';
bq.Dequeue
end
else begin
Stroka:=Stroka+wq.Peek[1];
wq.Dequeue
end
end;
while bq.Count>0 do begin
Stroka:=Stroka+bq.Peek[1]*' ';
bq.Dequeue
end;
while wq.Count>0 do begin
Stroka:=Stroka+wq.Peek[1];
wq.Dequeue
end
end;
begin
var s:=ReadlnString;
Preobraz(s);
s:='<'+s+'>'; // чтобы было видно, как работает
s.Println
end.