この問題は順列全列挙を問います。
問題から A=(A1,A2,...,AN) がランダムな順番で言い渡されると書いてあるので、単に A1,A2,...,AN の順で計算するとは限りません。
このランダムな順番は、最悪 N! 通り存在します( Ai はすべて相異なると仮定する時)。制約から 1≤N≤8 であるため、8!=40320 通りを全列挙することが適切です。
そのうち B1,B2,...,BM 番目を撃ち落とせなかったと書かれていますが、これは言い換えれば 1 以上 N 以下の整数からなる順列 (1,2,...,N) を並び替えた数列 P=(P1,P2,...,PN) に対し、PB1=PB2=...=PBM=0 として計算することを表しています。この挙動を実装できると、正解することができます。
以上から O(N!N) で実装することが可能です。以下は解答例になります(C++)。