Advertisement
Sajib_Ahmed

knapsack greedy

Jul 3rd, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.     int n,i,j;
  6.     cin>>n;
  7.     double val[n],wt[n],p[n];
  8.     for(i=0; i<n; i++)
  9.     {
  10.         cin>>val[i];
  11.     }
  12.     for(i=0; i<n; i++)
  13.     {
  14.         cin>>wt[i];
  15.  
  16.     }
  17.     for(i=0; i<n; i++)
  18.     {
  19.         p[i]=(val[i]/wt[i]);
  20.     }
  21.     for(i=0; i<n; i++)
  22.     {
  23.         for(j=i+1; j<n; j++)
  24.         {
  25.             if(p[i]<p[j])
  26.             {
  27.                 swap(val[i],val[j]);
  28.                 swap(wt[i],wt[j]);
  29.                 swap(p[i],p[j]);
  30.             }
  31.         }
  32.     }
  33.     double k,s=0;
  34.     cin>>k;
  35.     for(i=0;; i++)
  36.     {
  37.         if(k>=wt[i])
  38.         {
  39.             s=s+(wt[i]*p[i]);
  40.             k=k-wt[i];
  41.         }
  42.         else
  43.         {
  44.             s=s+(k*p[i]);
  45.             break;
  46.         }
  47.     }
  48.     cout<<s;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement