Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- void solve()
- {
- int64_t n,W;
- cin >> n >> W;
- int64_t k[n+1];
- int64_t sum=0;
- vector<pair<int64_t,int64_t>> v;
- for(int i=1;i<=n;i++)
- {
- cin >> k[i];
- v.push_back(make_pair(k[i],i));
- }
- sort(v.begin(),v.end());
- if(v[1].first>W)
- {
- cout << -1 << endl;
- return;
- }
- int64_t l=1,r=1;
- sum+=v[1].first;
- while(sum<(W+1)/2 or sum>W)
- {
- if(sum<(W+1)/2)
- {
- sum+=v[l].first;
- l++;
- }
- if(sum>W)
- {
- sum-=v[r].first;
- r++;
- }
- else
- {
- break;
- }
- }
- cout << l-r+1 << endl;
- for(int i=r;i<=l;i++)
- {
- cout << v[i].second << " ";
- }
- cout << endl;
- return;
- }
- int main()
- {
- int t;
- cin >> t;
- while(t--)
- {
- solve();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement