def BS(zoz, val):
left = 0; right = len(zoz)-1
while (right-1>left):
mid = (left+right)//2
if (zoz[mid]<val):
left = mid
else:
right = mid
if (zoz[left]>=val):
return left
else:
return right
for _ in range(int(input())):
n, q = map(int, input().split())
zoz = [int(x) for x in input().split()]
zoz.sort(); zoz.reverse()
pref = [zoz[0]]
for i in range(1, n):
pref.append(zoz[i] + pref[-1])
for i in range(q):
query = int(input())
if (query>pref[-1]):
print(-1)
else:
print(BS(pref, query)+1)
#include<bits/stdc++.h>
using namespace std;
#define int long long
bool chk(int mid,vector<int >&s,int x){
int i;
int sum=0;
if(s[mid]>=x){
return true;
}
else{
return false;
}
}
int32_t main(){
int t;
cin>>t;
while(t--){
int n,q;
cin>>n>>q;
vector<int >sugar(n);
int i,c=0;
for(i=0;i<n;i++){
cin>>sugar[i];
}
for(i=0;i<n;i++){
c+=sugar[i];
}
sort(sugar.begin(),sugar.end());
reverse(sugar.begin(),sugar.end());
vector<int> prefix(n);
prefix[0]=sugar[0];
for(i=1;i<n;i++){
prefix[i]=sugar[i]+prefix[i-1];
}
while(q--){
int x;
cin>>x;
if(x>c){
cout<<-1<<endl;
}
else{
int l=0,r=n-1;
int mid,ans;
while(l<=r){
mid= l+(r-l)/2;
if(chk(mid,prefix,x)){
ans=mid+1;
r=mid-1;
}
else{
l=mid+1;
}
}
cout<<ans<<endl;
}
}
}
return 0;
}
53. Maximum Subarray | 1527A. And Then There Were K |
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers | 318. Maximum Product of Word Lengths |
448. Find All Numbers Disappeared in an Array | 1155. Number of Dice Rolls With Target Sum |
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |
1051. Height Checker | 695. Max Area of Island |
402. Remove K Digits | 97. Interleaving String |
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |