0-1+knapsacknmnbbhhjhvhjhj-hjkbbjbj.pptx

luksisnskks929299w 4 views 136 slides Oct 09, 2024
Slide 1
Slide 1 of 136
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129
Slide 130
130
Slide 131
131
Slide 132
132
Slide 133
133
Slide 134
134
Slide 135
135
Slide 136
136

About This Presentation

hj


Slide Content

Time complexity:   Space complexity:   4 5 1 7 2 6 3 8 a Space complexity:     text text no margin no margin text text no margin no margin rec(n)   5 5 [ 4 , 5 , 1 , 7 , 2 , 6 , 3 , 8 ] left no margin mid no margin $ no margin no margin no margin no margin 5 5 "string" list list list list      

0-1 knapsack

6 kg 20 $ 5 kg 15 $ 13 kg 30 $ 10 kg 25 $ 3 kg 10 $

6 kg 20 $ 5 kg 15 $ 13 kg 30 $ 10 kg 25 $ 3 kg 10 $ Capacity: 20kg

We have items, each one of them has a value and a weight , and we want to determine which items to take without exceeding the maximum weight while having a total value that is as big as possible, you are asked to return their total value.    

We have items, each one of them has a value and a weight , and we want to determine which items to take without exceeding the maximum weight while having a total value that is as big as possible, you are asked to return their total value.       maximize subject to  

6 kg 20 $ 5 kg 15 $ 13 kg 30 $ 10 kg 25 $ 3 kg 10 $ Capacity: 20kg input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 output: 55 explanation: we take items 0, 3, and 4  

6 kg 20 $ 5 kg 15 $ 13 kg 30 $ 10 kg 25 $ 3 kg 10 $ Capacity: 20kg input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 output: 55 explanation: we take items 0, 3, and 4  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 knapsack ( 20 , ) k i

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 knapsack ( 20 , ) k i knapsack ( 14 , 1 ) knapsack ( 20 , 1 )    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 knapsack ( 20 , ) k i knapsack ( 14 , 1 ) knapsack ( 1 , 2 ) knapsack ( 14 , 2 ) knapsack ( 7 , 2 ) knapsack ( 20 , 2 ) knapsack ( 20 , 1 )            

 

 

 

             

              def knapsack ( values , weights , k , i = ) : if i == len ( values ) : return elif weights [ i ] > k : return knapsack ( values , weights , k , i + 1 ) else : return max ( values [ i ] + knapsack ( values , weights , k - weights [ i ], i + 1 ), knapsack ( values , weights , k , i + 1 ))

              def knapsack ( values , weights , k , i = ) : if i == len ( values ) : return elif weights [ i ] > k : return knapsack ( values , weights , k , i + 1 ) else : return max ( values [ i ] + knapsack ( values , weights , k - weights [ i ], i + 1 ), knapsack ( values , weights , k , i + 1 ))

def knapsack ( values , weights , k , i = ) : if i == len ( values ) : return elif weights [ i ] > k : return knapsack ( values , weights , k , i + 1 ) else : return max ( values [ i ] + knapsack ( values , weights , k - weights [ i ], i + 1 ), knapsack ( values , weights , k , i + 1 )) knapsack ( k , ) knapsack ( k , 1 ) knapsack ( k , n ) . . .

def knapsack ( values , weights , k , i = ) : if i == len ( values ) : return elif weights [ i ] > k : return knapsack ( values , weights , k , i + 1 ) else : return max ( values [ i ] + knapsack ( values , weights , k - weights [ i ], i + 1 ), knapsack ( values , weights , k , i + 1 )) knapsack ( k , ) knapsack ( k , 1 ) knapsack ( k , n ) . . .  

  knapsack(k,0) knapsack(k,1) knapsack(k,n) . . .  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 7 , 10 , 3 ] k = 20 k ( 17 , 5 ) k ( 14 , 5 ) k ( 11 , 5 ) k ( 10 , 5 ) k ( 7 , 5 ) k ( 4 , 5 ) k ( 3 , 5 ) k ( 1 , 5 ) k ( , 5 ) k ( 20 , 5 ) k ( 20 , 2 ) k ( 20 , 3 ) k ( 7 , 2 ) k ( 1 , 2 ) k ( 14 , 2 ) k ( 7 , 3 ) k ( 1 , 3 ) k ( 14 , 3 ) k ( 20 , 1 ) k ( 14 , 1 ) k ( 20 , ) k ( 20 , 4 ) k ( 7 , 4 ) k ( 1 , 4 ) k ( 14 , 4 ) k ( 13 , 3 ) k ( , 3 ) k ( 10 , 4 ) k ( 4 , 4 ) k ( 3 , 4 ) k ( , 4 ) k ( 13 , 4 ) k ( 13 , 3 )

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 7 , 10 , 3 ] k = 20 k ( 17 , 5 ) k ( 14 , 5 ) k ( 11 , 5 ) k ( 10 , 5 ) k ( 7 , 5 ) k ( 4 , 5 ) k ( 3 , 5 ) k ( 1 , 5 ) k ( , 5 ) k ( 20 , 5 ) k ( 20 , 2 ) k ( 20 , 3 ) k (7,2) k ( 1 , 2 ) k (14,2) k (7,3) k ( 1 , 3 ) k ( 14 , 3 ) k ( 20 , 1 ) k ( 14 , 1 ) k ( 20 , ) k ( 20 , 4 ) k ( 7 , 4 ) k ( 1 , 4 ) k ( 14 , 4 ) k ( 13 , 3 ) k ( , 3 ) k ( 10 , 4 ) k ( 4 , 4 ) k ( 3 , 4 ) k ( , 4 ) k ( 13 , 4 ) k ( 13 , 3 )

def knapsack ( values , weights , k , i = , lookup = None ) : lookup = {} if lookup is None else lookup if ( k , i ) in lookup : return lookup [( k , i )] elif i == len ( values ) : return elif weights [ i ] > k : lookup [( k , i )] = knapsack ( values , weights , k , i + 1 , lookup ) return lookup [( k , i )] else : lookup [( k , i )] = max ( values [ i ] + knapsack ( values , weights , k - weights [ i ], i + 1 , lookup ), knapsack ( values , weights , k , i + 1 , lookup )) return lookup [( k , i )] 1 2 3 4

         

           

  call stack size lookup table size

           

dp[ n-1 ][ k ] represents the maximum value that we can get from the array of items that ends at the item n-1 , the last one, with a maximum weight of k

dp[ i ][ j ] represents the maximum value that we can get from the array of items that ends at the item i , the last one, with a maximum weight of j

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 When we can take the item , to get the value of , we check if it's better to take the item and subtract its weight or to not take it at all  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 45 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 45 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 45 50 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 45 50 55 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 45 50 55 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 45 50 55 55 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20     input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20

input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 5 , 10 , 3 ] k = 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 15 20 20 20 20 20 35 35 35 35 35 35 35 45 50 50 15 20 20 20 20 25 35 35 35 35 40 45 45 45 50 50 10 10 15 20 20 25 30 30 35 35 35 45 45 45 45 50 55 55 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20    

def knapsack ( values , weights , k ) : if k == 0: return 0 elif k >= sum(weights): return sum(values) n = len(values) dp = [[0]*(k+1) for i in range(n)] for i in range(weights[0], k+1): dp[0][i] = values[0] for i in range(1, n): for j in range(k+1): if weights[i] > j: dp[i][j] = dp[i-1][j] else: dp[i][j] = max(values[i]+dp[i-1][j-weights[i]], dp[i-1][j]) return dp[n-1][k]

def knapsack ( values , weights , k ) : if k == : return elif k >= sum ( weights ) : return sum ( values ) n = len(values) dp = [[0]*(k+1) for i in range(n)] for i in range(weights[0], k+1): dp[0][i] = values[0] for i in range(1, n): for j in range(k+1): if weights[i] > j: dp[i][j] = dp[i-1][j] else: dp[i][j] = max(values[i]+dp[i-1][j-weights[i]], dp[i-1][j]) return dp[n-1][k]

def knapsack ( values , weights , k ) : if k == : return elif k >= sum ( weights ) : return sum ( values ) n = len ( values ) dp = [[ ] * ( k + 1 ) for i in range ( n )] for i in range(weights[0], k+1): dp[0][i] = values[0] for i in range(1, n): for j in range(k+1): if weights[i] > j: dp[i][j] = dp[i-1][j] else: dp[i][j] = max(values[i]+dp[i-1][j-weights[i]], dp[i-1][j]) return dp[n-1][k]

def knapsack ( values , weights , k ) : if k == : return elif k >= sum ( weights ) : return sum ( values ) n = len ( values ) dp = [[ ] * ( k + 1 ) for i in range ( n )] for i in range ( weights [ ], k + 1 ) : dp [ ][ i ] = values [ ] for i in range(1, n): for j in range(k+1): if weights[i] > j: dp[i][j] = dp[i-1][j] else: dp[i][j] = max(values[i]+dp[i-1][j-weights[i]], dp[i-1][j]) return dp[n-1][k]

def knapsack ( values , weights , k ) : if k == : return elif k >= sum ( weights ) : return sum ( values ) n = len ( values ) dp = [[ ] * ( k + 1 ) for i in range ( n )] for i in range ( weights [ ], k + 1 ) : dp [ ][ i ] = values [ ] for i in range ( 1 , n ) : for j in range ( k + 1 ) : if weights [ i ] > j : dp [ i ][ j ] = dp [ i - 1 ][ j ] else : dp [ i ][ j ] = max ( v alues [ i ] + dp [ i - 1 ][ j - weights [ i ]], dp [ i - 1 ][ j ]) return dp[n-1][k]

def knapsack ( values , weights , k ) : if k == : return elif k >= sum ( weights ) : return sum ( values ) n = len ( values ) dp = [[ ] * ( k + 1 ) for i in range ( n )] for i in range ( weights [ ], k + 1 ) : dp [ ][ i ] = values [ ] for i in range ( 1 , n ) : for j in range ( k + 1 ) : if weights [ i ] > j : dp [ i ][ j ] = dp [ i - 1 ][ j ] else : dp [ i ][ j ] = max ( v alues [ i ] + dp [ i - 1 ][ j - weights [ i ]], dp [ i - 1 ][ j ]) return dp [ n - 1 ][ k ]

def knapsack ( values , weights , k ) : if k == : return elif k >= sum ( weights ) : return sum ( values ) n = len ( values ) dp = [[ ] * ( k + 1 ) for i in range ( n )] for i in range ( weights [ ], k + 1 ) : dp [ ][ i ] = values [ ] for i in range ( 1 , n ) : for j in range ( k + 1 ) : if weights [ i ] > j : dp [ i ][ j ] = dp [ i - 1 ][ j ] else : dp [ i ][ j ] = max ( v alues [ i ] + dp [ i - 1 ][ j - weights [ i ]], dp [ i - 1 ][ j ]) return dp [ n - 1 ][ k ]              

def knapsack ( values , weights , k ) : if k == : return elif k >= sum ( weights ) : return sum ( values ) n = len ( values ) dp = [[ ] * ( k + 1 ) for i in range ( n )] for i in range ( weights [ ], k + 1 ) : dp [ ][ i ] = values [ ] for i in range ( 1 , n ) : for j in range ( k + 1 ) : if weights [ i ] > j : dp [ i ][ j ] = dp [ i - 1 ][ j ] else : dp [ i ][ j ] = max ( v alues [ i ] + dp [ i - 1 ][ j - weights [ i ]], dp [ i - 1 ][ j ]) return dp [ n - 1 ][ k ]    

def knapsack ( values , weights , k ) : if k == : return elif k >= sum ( weights ) : return sum ( values ) n = len ( values ) prev_dp = [ ] * ( k + 1 ) dp = [ ] * ( k + 1 ) for i in range ( weights [ ], k + 1 ) : prev_dp [ i ] = values [ ] for i in range ( 1 , n ) : for j in range ( k + 1 ) : if weights [ i ] > j : dp [ j ] = prev_dp [ j ] else : dp [ j ] = max ( values [ i ] + prev_dp [ j - weights [ i ]], prev_dp [ j ]) prev_dp = dp dp = [ ] * ( k + 1 ) return prev_dp [ k ]      

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 50 50 20 20 20 20 20 20 20 35 35 35 35 35 35 50 50 20 20 20 20 25 25 25 35 35 35 45 45 45 50 50 10 10 10 20 20 20 30 30 30 30 35 35 35 45 45 45 55 55 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 k ( 17 , 5 ) k ( 14 , 5 ) k ( 11 , 5 ) k ( 10 , 5 ) k ( 7 , 5 ) k ( 4 , 5 ) k ( 3 , 5 ) k ( 1 , 5 ) k ( , 5 ) k ( 20 , 5 ) k ( 20 , 2 ) k ( 20 , 3 ) k ( 7 , 2 ) k ( 1 , 2 ) k ( 14 , 2 ) k ( 7 , 3 ) k ( 1 , 3 ) k ( 14 , 3 ) k ( 20 , 1 ) k ( 14 , 1 ) k ( 20 , ) k ( 20 , 4 ) k ( 7 , 4 ) k ( 1 , 4 ) k ( 14 , 4 ) k ( 13 , 3 ) k ( , 3 ) k ( 10 , 4 ) k ( 4 , 4 ) k ( 3 , 4 ) k ( , 4 ) k ( 13 , 4 ) k ( 13 , 3 ) input: values = [ 20 , 30 , 15 , 25 , 10 ] weights = [ 6 , 13 , 7 , 10 , 3 ] k = 20

0-1 knapsack
Tags