| 12345678910111213141516171819202122232425262728293031 | package mainimport "fmt"const MOD int = 1000000007func main() {	var n, s int	fmt.Scan(&n, &s)	cards := make([]int, n)	for i := range cards {		fmt.Scan(&cards[i])	}	dp := make([][]int, n)	for i := range dp {		dp[i] = make([]int, s+1)	}	dp[0][0] = 2	if s != 0 {		dp[0][1] = 1	}	for i := 1; i < n; i++ {		for j := 0; j <= s; j++ {			dp[i][j] = (2 * dp[i-1][j]) % MOD // Not win			if j > 0 {				dp[i][j] = (dp[i][j] + dp[i-1][j-1]) % MOD // Win			}		}	}	fmt.Println(dp[n-1][s])}
 |