Помогите, даю много баллов!!!!!
Где у меня тут ошибка?
var
k, i, j : integer;
a : array [1..10,1..3] of longint;
x, y, z : longint;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(k);
for i:=1 to 10 do for j:=1 to 3 do a[i,j]:=0;
a[10,1]:=2;
while k>10 do begin k:=k-1;
x:=(a[1,1]+a[1,2]+a[1,3]) mod 1000000;
y:=a[10,1];
z:=a[10,2];
for i:=1 to 9 do for j:=1 to 3 do a[i,j]:=a[i+1,j];
a[10,1]:=x; a[10,2]:=y; a[10,3]:=z
end;
write((a[k,1]+a[k,2]+a[k,3]) mod 1000000);
close(output)
end.
Задание:
Как известно, стакан – предмет весьма функциональный. Самый банальный способ применения – ёмкость для жидкости, самый оригинальный ещё не изобретён. А мальчик Слава строит из стаканов башни, пользуясь удивительным свойством стаканов ставиться друг на друга или вставляться друг в друга.
Слава строит башни из стаканов высотой 10 сантиметров, которых у него имеется бесконечное количество. Стакан можно поставить на уже имеющуюся конструкцию либо дном вниз, либо дном вверх. Если предыдущий стакан установлен аналогично новому, то конструкция вырастет на 1 сантиметр, так как стаканы надеваются друг на друга. В противном случае башня вырастет на 10 сантиметров.
Однажды Слава заметил, что ни в коем случае нельзя вставлять друг в друга более трёх стаканов, иначе один из стаканов обязательно разобьётся.
На рисунке показан пример башни высотой 32 сантиметра из 5 стаканов.
Слава умудрился построить красивую башню высотой k сантиметров. Но когда он пошёл за фотоаппаратом, чтобы запечатлеть это достижение, случайно задел конструкцию, и башня упала. Пытаясь восстановить своё творение, Слава понял, что есть несколько способов построить башню аналогичной высоты. Помогите Славе вычислить точное количество способов.