Write an efficient algorithm for the following problem, and describe your reasoning. Determine the Time complexity and if you cannot find any polynomial time algorithm, then give a backtracking algorithm. Problem: Binary Array Core Input: Two integers p and q and a binary array A[1...n], i.e., each entry contains either a 0 or 1. Output: Print Yes - if there exists a subarray A[i...k], where 1<= i < k <= n, with exactly p zeros in A[1...i-1] (there may be 1s) and exactly q ones in A[k+1...n] (there may be 0s). Print No - otherwise. Outputs with examples Input: A = [0,1,1,0,1], p = 2, q =1, Output: No. Input: A = [0, 1,1,0, 0,1,0,1], p = 1, q =1, Output: Yes because we can have A[1...i-1] = [0] and A[k+1 ... n] = [0,1,0,1]
Write an efficient
Problem: Binary Array Core
Input: Two integers p and q and a binary array A[1...n], i.e., each entry contains either a 0 or 1.
Output: Print Yes - if there exists a subarray A[i...k], where 1<= i < k <= n, with exactly p zeros in A[1...i-1] (there may be 1s) and exactly q ones in A[k+1...n] (there may be 0s). Print No - otherwise.
Outputs with examples
Input: A = [0,1,1,0,1], p = 2, q =1, Output: No.
Input: A = [0, 1,1,0, 0,1,0,1], p = 1, q =1, Output: Yes because we can have A[1...i-1] = [0] and A[k+1 ... n] = [0,1,0,1]
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 2 images