k_1,k_2,k_3 su velkosti kachliciek N je dlzka police keby bolo kachliciek nekonecne vela, potom by to bolo P[0..N] je pole kde mame na i-tom mieste pocet moznosti pre policu dlzky i P[0] = 1 (1 moznost vybrat si ziadnu kachlicku) P[i] = 0 pre 0 < i < N+1 for i:=1 to N do if i>=k_1 then P[i]=P[i]+P[i-k_1] if i>=k_2 then P[i]=P[i]+P[i-k_2] if i>=k_3 then P[i]=P[i]+P[i-k_3] return P[N] _________________________________ ked bude kachliciek obmedzene vela, konkretne pre velkost k_1 mame n_1 pre velkost k_2 mame n_2 pre velkost k_3 mame n_3 P[0..N][0..n_1, 0..n_2, 0..n_3] je pole kde mame na mieste [i][a,b,c] pocet moznosti pre policu dlzky i a s poctami kachliciek a,b,c nastavime vsetky prvky P na 0 P[0][vsetky moznosti] = 1 (anologicky ako P[0] v predoslom) for i:=1 to N do for (x,y,z):=(0,0,0) to (n_1, n_2, n_3) do podmienky, ze mame aspon jednu kachlicku predtym nez ju pouzijeme a ze sa tam ta kachlicka zmesti if i>=k_1 && x>0 then P[i][x,y,z] = P[i][x,y,z] + P[i-k][x-1,y,z] if i>=k_2 && y>0 then P[i][x,y,z] = P[i][x,y,z] + P[i-m][x,y-1,z] if i>=k_3 && z>0 then P[i][x,y,z] = P[i][x,y,z] + P[i-n][x,y,z-1] return P[N][n_1, n_2, n_3]