names$[] = [ "Baker" "Cooper" "Fletcher" "Miller" "Smith" ] BAKER = 1 COOPER = 2 FLETCHER = 3 MILLER = 4 SMITH = 5 # floors[] = [ 1 2 3 4 5 ] # proc check . if floors[BAKER] <> 5 and floors[COOPER] <> 1 and floors[FLETCHER] <> 1 and floors[FLETCHER] <> 5 if floors[MILLER] > floors[COOPER] and abs (floors[SMITH] - floors[FLETCHER]) <> 1 and abs (floors[FLETCHER] - floors[COOPER]) <> 1 for i to 5 print names$[i] & " lives on floor " & floors[i] . . . . proc permute k . if k = 0 check return . for i = 1 to k swap floors[i] floors[k] permute k - 1 swap floors[k] floors[i] . . permute len floors[]