Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- int main(){
- int n, W;
- cin>>n>>W;
- vector <int> w(n);
- vector <int> p(n);
- for (int i=0; i<n; i++){
- cin>>w[i]>>p[i];
- }
- long long best_sum=0;
- long long answer=-1;
- int number;
- for (int mask=0; mask<(1<<n); ++mask){
- long long sum_w=0;
- long long sum_p=0;
- int number_of_this_mask=0;
- for (int i=0; i<n; i++){
- if ((mask>>i)&1==1){
- sum_w+=w[i];
- sum_p+=p[i];
- number_of_this_mask ++;
- }
- }
- if (sum_w<=W){
- if (sum_p>best_sum){
- best_sum=sum_p;
- answer=mask;
- number=number_of_this_mask;
- }
- }
- }
- if (answer==-1){
- cout<<0<<"\n";
- }else{
- cout<<number<<"\n";
- for (int i=0; i<n; i++){
- if ((answer>>i)&1==1){
- cout<<i+1<<" ";
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement