dzungchaos

C++ "Untitled kpcpp"

Jan 15th, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. #define MAXN 20
  4. int x[MAXN], xopt[MAXN], n;
  5. float w[MAXN], c[MAXN], b, bk, fk, fopt = 0;
  6.  
  7. void print_sol(){
  8.     for(int i = 1; i <= n; i++)
  9.         cout << xopt[i];
  10.     cout << endl;
  11. }
  12.  
  13. void TRY(int k){
  14.     int tk = bk >= w[k];
  15.     for(int y = 0; y <= tk; y++){
  16.         x[k] = y;
  17.         bk -= w[k] * x[k];
  18.         fk += c[k] * x[k];
  19.         if (k == n){
  20.             if (fk > fopt){
  21.                 fopt = fk;
  22.                 for(int i = 1; i <= n; i++)
  23.                     xopt[i] = x[i];                
  24.             }
  25.         } else TRY(k+1);
  26.         bk += w[k] * x[k];
  27.         fk -= c[k] * x[k];
  28.     }
  29. }
  30.  
  31. void input(){
  32.     cout << "n , b = "; cin >> n >> b;
  33.     for(int i = 1; i <= n; i++){
  34.         cout << "w[" << i << "] = "; cin >> w[i];
  35.     }
  36.     for(int i = 1; i <= n; i++){
  37.         cout << "c[" << i << "] = "; cin >> c[i];
  38.     }
  39. }
  40. int main(){
  41.     input();   
  42.     bk = b;
  43.     fk = fopt = 0;
  44.     TRY(1);
  45.     print_sol();
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment