4
int solve(int ind, int n, vector<int> &arr, int req, vector<vector<int>> &dp) {5
if (ind == n) return 0;6
if (dp[ind][req] != -1) return dp[ind][req];8
if (arr[ind] % 2 == 0) {9
return dp[ind][req] = solve(ind + 1, n, arr, req, dp);11
return dp[ind][req] = (1 + solve(ind + 1, n, arr, !req, dp)) % mod;14
if (arr[ind] % 2 == 0) {15
return dp[ind][req] = (1 + solve(ind + 1, n, arr, req, dp)) % mod;17
return dp[ind][req] = solve(ind + 1, n, arr, !req, dp);21
int numOfSubarrays(vector<int> &arr) {23
vector<vector<int>> dp(n, vector<int>(2, -1));25
for (int i = 0; i < n; i++) {26
count = (count + solve(i, n, arr, 1, dp)) % mod;