c

Правка ru1, от Matteus11, 2026-10-09 18:51:47

include

include

include

include

using namespace std;

int main(){ int t; cin >> t; for (int _=0; _<t; _++){ int n, q; cin >> n >> q; vector v(n); for(int i=0; i<n; i++){ cin >> v[i]; } sort(v.rbegin(), v.rend()); vector qs(q); for (int j=0; j<q; j++){ cin >> qs[j]; } vector sums(n); sums[0] = v[0]; for (int i1=1; i1<n; i1++){ sums[i1] = sums[i1-1]+v[i1]; } for (int i=0; i<q; i++){ long long sumv = accumulate(v.begin(), v.end(), 0); if (sumv<qs[i]){ cout << -1; continue; } int l=0; int r=n; while (r-l > 1){ if (sums[(r+l)/2]>qs[i]){ r = (r+l)/2; } else { l = (r+l)/2; } } cout << (l+r)/2 << endl; } } }

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru1 Русский Matteus11 2026-10-09 18:51:47 1101 Первая редакция (опубликовано)