Сделано только 2 вопросов, третий вопрос не динамические идей программирования, овощи мертвых
Третий вопрос, оправляется моделирование
1 INT dieSimulator ( INT п, вектор < INT > & rollMax) { 2 вектор <вектор <вектор < INT >>> дп (п + 1 , вектор <вектор < INT >> ( 6 , вектор < INT > ( 16 , 0 ))); 3 INT мод = 7 + 1e9; 4 для ( INT I = 0 ; г < 6 ; я ++ ) 5 дп [ 0 ] [I] [ 1 ] = 1 ; 6 для ( INT I = 1 ; <п; я ++ ) 7 { 8 для ( INT J = 0 ; J < 6 ; j ++ ) 9 { 10 для ( INT к = 0 ; к < 6 ; K ++ ) 11 { 12 , если ( ! J = к) 13 { 14 для ( Int L = 1 , L <= rollMax [K], L ++ ) 15 { 16 дп [I] [J] [ 1 ] + = дп [я - 1 ] [к] [л]; 17 дп [I] [J] [ 1 ] =% по модулю; 18 } 19 } 20 еще 21 { 22 для ( Int л = 1 ; л <rollMax [K], L ++ ) 23 { 24 дп [I] [J] [L + 1 ] + = йр [I - 1 ] [к ] [л]; 25 дп [I] [J] [L + 1 ] =%мод; 26 } 27 } 28 } 29 } 30 } 31 INT Рез = 0 ; 32 для ( INT I = 0 ; г < 6 ; я ++ ) 33 { 34 для ( Int J = 1 , J <rollMax [I]; j ++ ) 35 { 36 разреш + = йр [п - 1 ] [I] [J ]; 37 разреш% = мод; 38 } 39 } 40 возврата разрешения; 41 }