Блог пользователя Matteus11

Автор Matteus11, история, 3 часа назад, По-русски

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; } } }

Полный текст и комментарии »

  • Проголосовать: нравится
  • -2
  • Проголосовать: не нравится