3 Y$ z# e5 t! q9 M1 i( Z. P9 G! V twv.tv=tv; . S2 ?& X G( \ a( |& [; \$ w N n7 ]
} $ _! G2 N$ S! G" [% i, ~' P( T& T! ~9 t( v
double find(struct ele *a,int n) / l. @2 ^8 m [& V) p* D' Y; R
7 u0 T! {' q( l$ m1 N, R { int i,k,f; - F: A' g) J" s+ R5 d N4 k7 U9 b
9 A% A2 Q; i1 C! [7 b" \ double maxv,tw,tv,totv; ( @9 ~5 J# S d ) i. S6 O% I) m( J1 c B maxv=0; $ Q. Q; t7 j8 P* Q% H$ C; P. d% R7 y8 h% _2 @! E8 x) n$ a
for (totv=0.0,k=0;k ' x& h9 B1 G9 F # E$ _1 W( B7 F) r: k5 O: H+ f totv+=a[k].value; 0 b6 X& [& t1 J4 M" {- z6 U ]1 T7 R * H. q6 v, X l$ ?. D/ l next(0,0.0,totv); 4 k& }2 c3 A+ w/ ~! M+ [2 {) U" L$ g9 F0 u2 k: M
i=0; " e' O. y! D9 F+ ?7 z' D* m* k
! Q. N3 M7 ]# F& z$ T
While (i>=0) 4 o0 Z$ a; O y) H+ D* h 8 [0 W# Q+ }: c5 X8 h4 T; ` { f=twv.; 9 Z" _# E M9 H+ J8 t$ a) |
1 u" H/ f* X0 a' |3 F tw=twv.tw; . r- M& A9 X9 ^ 7 w/ s8 K. \8 A) x0 X. M% I6 b ]0 d tv=twv.tv; - t5 M n- f4 k* z. O7 y
3 ~- W! X& I4 S+ ^3 G# _! s, k switch(f) {; h6 k6 l5 t' R& W# k6 y 9 J" |+ @1 }, `9 V) n { case 1: twv.++; ; C; K9 D9 G: b/ F- Y% _3 [+ e0 W2 O8 O9 H+ h' y5 s
if (tw+a.weight<=limitW) W2 |7 j- S& Z& C# @
' e$ P, y C% j. }+ }3 |
if (i , x& H" i( t) F" e, |/ m' F3 t% X: E* o/ k5 V
{ next(i+1,tw+a.weight,tv); ) u5 x% a- B, k! A( o * P3 ~( z) Q3 Z& G- T9 m9 G* a i++; 4 n! x3 S! x/ k- m) S8 ^
' w- f& ]! K n: L7 Q2 c
} * d( D" `0 E$ H( U. @" ?
( W) U {$ ~' m: B! e! Z" @5 X* w
else & M) Z4 g2 F& r3 y1 o: v
% P: s8 e4 ]" J7 d8 ], ^. A { maxv=tv; 6 h! ?: B% i) ]: J8 w+ w! D( {1 j+ |8 Q; a3 Z, K# ?$ H" \
for (k=0;k p! |9 l6 R& q
' ~6 u( H# ^. K, p' e \
cop[k]=twv[k].!=0; 1 e- `6 \' \# w; S; P S5 _4 w* O& V# r8 ]- x } & `& E( F6 o e" T3 y* `/ }* U" v7 M: x+ T9 B# U6 v
break; 6 w- c- b. Z* T2 I + e; _# F1 h7 n2 Y6 M case 0: i--; 3 s; ]) d) W* i! c* Y7 l* _$ y" o/ s% r3 [
break; 6 n8 v1 R! y8 D: S- D
# [: c& j7 ~* g default: twv.=0; 6 }' C, x; e8 P : f1 u/ c; v5 {/ Q' Q0 ~ if (tv-a.value>maxv) 6 ?; ]# F. a6 r# `# R. I' E
: {& t# @* ?' R
if (i % I3 d8 T7 l U) a2 f9 @% t0 v 3 d! y7 }/ Q% P# O; P2 p0 n$ v$ d { next(i+1,tw,tv-a.value); ; Y8 F/ i5 k0 Y' r9 g ) o) H f" A% E) g i++; 6 X1 q0 x# I/ D0 J4 G+ G) l' W1 m8 N& `4 H$ r$ L
} $ t8 D2 N/ G0 G1 P* ~5 A " z( Z7 c; ?/ w+ k else 8 k8 R7 Z* ?5 m2 Y' y7 T" j. t# i7 X% Z. B: X4 `& D
{ maxv=tv-a.value; + D, u8 V4 _6 w) F. _( H* I5 K
# N' _ e9 u* t0 A3 D8 C: a for (k=0;k ( M/ X" |$ j; d/ ^