Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #define MAXN 20
- int x[MAXN], xopt[MAXN], n;
- float w[MAXN], c[MAXN], b, bk, fk, fopt = 0;
- void print_sol(){
- for(int i = 1; i <= n; i++)
- cout << xopt[i];
- cout << endl;
- }
- void TRY(int k){
- int tk = bk >= w[k];
- for(int y = 0; y <= tk; y++){
- x[k] = y;
- bk -= w[k] * x[k];
- fk += c[k] * x[k];
- if (k == n){
- if (fk > fopt){
- fopt = fk;
- for(int i = 1; i <= n; i++)
- xopt[i] = x[i];
- }
- } else TRY(k+1);
- bk += w[k] * x[k];
- fk -= c[k] * x[k];
- }
- }
- void input(){
- cout << "n , b = "; cin >> n >> b;
- for(int i = 1; i <= n; i++){
- cout << "w[" << i << "] = "; cin >> w[i];
- }
- for(int i = 1; i <= n; i++){
- cout << "c[" << i << "] = "; cin >> c[i];
- }
- }
- int main(){
- input();
- bk = b;
- fk = fopt = 0;
- TRY(1);
- print_sol();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment