Advertisement
ekzolot

Untitled

Apr 6th, 2022
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int main(){
  5.     int n, W;
  6.     cin>>n>>W;
  7.     vector <int> w(n);
  8.     vector <int> p(n);
  9.     for (int i=0; i<n; i++){
  10.         cin>>w[i]>>p[i];
  11.     }
  12.     long long best_sum=0;
  13.     long long answer=-1;
  14.     int number;
  15.     for (int mask=0; mask<(1<<n); ++mask){
  16.         long long sum_w=0;
  17.         long long sum_p=0;
  18.         int number_of_this_mask=0;
  19.         for (int i=0; i<n; i++){
  20.             if ((mask>>i)&1==1){
  21.                 sum_w+=w[i];
  22.                 sum_p+=p[i];
  23.                 number_of_this_mask ++;
  24.             }
  25.         }
  26.         if (sum_w<=W){
  27.             if (sum_p>best_sum){
  28.                 best_sum=sum_p;
  29.                 answer=mask;
  30.                 number=number_of_this_mask;
  31.             }
  32.         }
  33.     }
  34.     if (answer==-1){
  35.         cout<<0<<"\n";
  36.     }else{
  37.         cout<<number<<"\n";
  38.         for (int i=0; i<n; i++){
  39.             if ((answer>>i)&1==1){
  40.                 cout<<i+1<<" ";
  41.             }
  42.         }
  43.     }
  44. }
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement