Advertisement
Guest User

Untitled

a guest
Nov 1st, 2021
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void solve()
  4. {
  5. int64_t n,W;
  6. cin >> n >> W;
  7. int64_t k[n+1];
  8. int64_t sum=0;
  9. vector<pair<int64_t,int64_t>> v;
  10. for(int i=1;i<=n;i++)
  11. {
  12. cin >> k[i];
  13. v.push_back(make_pair(k[i],i));
  14. }
  15. sort(v.begin(),v.end());
  16. if(v[1].first>W)
  17. {
  18. cout << -1 << endl;
  19. return;
  20. }
  21. int64_t l=1,r=1;
  22. sum+=v[1].first;
  23. while(sum<(W+1)/2 or sum>W)
  24. {
  25. if(sum<(W+1)/2)
  26. {
  27. sum+=v[l].first;
  28. l++;
  29. }
  30. if(sum>W)
  31. {
  32. sum-=v[r].first;
  33. r++;
  34. }
  35. else
  36. {
  37. break;
  38. }
  39. }
  40. cout << l-r+1 << endl;
  41. for(int i=r;i<=l;i++)
  42. {
  43. cout << v[i].second << " ";
  44. }
  45. cout << endl;
  46. return;
  47.  
  48. }
  49. int main()
  50. {
  51. int t;
  52. cin >> t;
  53. while(t--)
  54. {
  55. solve();
  56. }
  57.  
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement