<p>You are given an integer array <code>nums</code> of length <code>n</code>, and an integer array <code>queries</code> of length <code>m</code>.</p>

<p>Return <em>an array </em><code>answer</code><em> of length </em><code>m</code><em> where </em><code>answer[i]</code><em> is the <strong>maximum</strong> size of a <strong>subsequence</strong> that you can take from </em><code>nums</code><em> such that the <strong>sum</strong> of its elements is less than or equal to </em><code>queries[i]</code>.</p>

<p>A <strong>subsequence</strong> is an array that can be derived from another array by deleting some or no elements without changing the order of the remaining elements.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> nums = [4,5,2,1], queries = [3,10,21]
<strong>Output:</strong> [2,3,4]
<strong>Explanation:</strong> We answer the queries as follows:
- The subsequence [2,1] has a sum less than or equal to 3. It can be proven that 2 is the maximum size of such a subsequence, so answer[0] = 2.
- The subsequence [4,5,1] has a sum less than or equal to 10. It can be proven that 3 is the maximum size of such a subsequence, so answer[1] = 3.
- The subsequence [4,5,2,1] has a sum less than or equal to 21. It can be proven that 4 is the maximum size of such a subsequence, so answer[2] = 4.
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> nums = [2,3,4,5], queries = [1]
<strong>Output:</strong> [0]
<strong>Explanation:</strong> The empty subsequence is the only subsequence that has a sum less than or equal to 1, so answer[0] = 0.</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>n == nums.length</code></li>
	<li><code>m == queries.length</code></li>
	<li><code>1 &lt;= n, m &lt;= 1000</code></li>
	<li><code>1 &lt;= nums[i], queries[i] &lt;= 10<sup>6</sup></code></li>
</ul>

"""

- Given an Integer array, nums 
- Given an Integer array, queries

- Return an array answer of the same size as n
- answer[i] = 

- If all the numbers are bigger than 1 return 0
- At least one query
- Positive numbers 

- approach -
                                   0
nums = [ 4, 5, 6 ], queries = [ 3, 2 ]
         j                      i               
        
pfx = [ 4, 9, 15 ]
        i 

answer = [ 2, 3, 4, 3 ]                      
  
Output: [ 2, 3, 4 ]

-------

nums = [ 4, 5, 2, 1 ]

queries = [ 3, 10, 21 ]
                    q            

pfx = [ 1, 3, 7, 12 ]
                 i

answer = [ 2, 3, 4 ]

1. 

"""

class Solution:
    def answerQueries(self, nums: List[int], queries: List[int]) -> List[int]:
        pfx = []
        answer = []
        pfx_sum = 0
        nums_sorted = sorted(nums)  


        for num in nums_sorted: 
            pfx_sum += num
            pfx.append(pfx_sum)

        for query in queries:
            if query < pfx[0]:
                answer.append(0)
            else:

                for i in range(len(pfx)):
                    if i + 1 == len(pfx) or pfx[i + 1] > query:  
                        answer.append(i + 1)
                        break

        return answer

                


        
267