PROGRAM SELECTION(INPUT,OUTPUT); (*N. WIRTH: ALGORITHMEN UND DATENSTRUKTUREN *) (*S. 216 2.3.1985 FLORIAN MATTHES *) CONST N=10; TYPE INDEX=1..N; OBJECT=RECORD V,W:INTEGER END; VAR I:INDEX; A:ARRAY[INDEX]OF OBJECT; LIMW,TOTV,MAXV:INTEGER; W1,W2,W3:INTEGER; S,OPTS:SET OF INDEX; Z:ARRAY[BOOLEAN]OF CHAR; PROCEDURE TRY(I:INTEGER;TW,AV:INTEGER); VAR AV1:INTEGER; BEGIN (*VERSUCHE DEN EINSCHLUSS VON OBJEKT I*) IF TW+A[I].W<=LIMW THEN BEGIN S:=S+[I]; IF IMAXV THEN BEGIN MAXV:=AV;OPTS:=S END; S:=S-[I]; END; (*VERSUCHE NUN OHNE OBJEKT I*) AV1:=AV-A[I].V; IF AV1>MAXV THEN BEGIN IF IW3; END.