Можете подробно решить на листочке или на Python
Дана пустая числовая очередь, которую заполняют числами. Возможные команды выглядят так:
push n — добавить в конец очереди число n
pop — забрать число из начала очереди
top — узнать значение первого элемента в очереди
size — напечатать размер очереди
clear — очистить очередь
Что будет находиться в очереди после выполнения следующих операций:
push 30
push 1
top
pop
top
push 2
size
pop
push 5
push 1
clear
push 10
push 1
push 2
pop
push 3
pop
top
pop
push 7
top
size
pop
В ответе укажите числа, находящиеся в очереди, в порядке от начала к концу, разделяя их пробелами.
const
m: array[1..8, 1..8] of byte =
((0, 1, 1, 1, 0, 0, 0, 0),
(1, 0, 0, 0, 1, 0, 1, 0),
(1, 0, 0, 0, 1, 1, 0, 0),
(1, 0, 0, 0, 0, 1, 1, 0),
(0, 1, 1, 0, 0, 0, 0, 1),
(0, 0, 1, 1, 0, 0, 0, 1),
(0, 1, 0, 1, 0, 0, 0, 1),
(0, 0, 0, 0, 1, 1, 1, 0));
var
n, i, j, k: integer;
a: array[0..100, 1..8] of int64;
begin
read(n);
a[0, 1] := 1;
for k := 1 to n do
for i := 1 to 8 do
for j := 1 to 8 do
if m[i, j] = 1 then
a[k, i] := a[k, i] + a[k - 1, j];
write(a[n, 8]);
end.
const
IN_FILENAME = 'INPUT.txt';
OUT_FILENAME = 'OUTPUT.txt';
var
fileIn,fileOut: TextFile;
s,t: string;
begin
writeln('Загружаю входные данные...');
t := '';
AssignFile(fileIn, IN_FILENAME);
AssignFile(fileOut, OUT_FILENAME);
reset(fileIn);
while not eof(fileIn) do
begin
readln(fileIn, s);
if (s = '0') then
break
else
t := t + s;
end;
CloseFile(fileIn);
rewrite(fileOut);
writeln(fileOut, Length(t));
CloseFile(fileOut);
end.