link split, printf procedure gen_range(low, high) return low + (high - low) * ?0 end procedure main(a) nshelves := integer(a[1]) | 3 nbooks := integer(a[2]) | 10 shelf_lim := split(read())[2:0] book_lim := split(read())[2:0] write("case 1") every i := 1 to nshelves do { printf("shelf 1 %d %d\n", gen_range!shelf_lim[1+:2], gen_range!shelf_lim[3+:2]) } every i := 1 to nbooks do { title := "Book_" || i thickness := gen_range!book_lim[1+:2] weight := gen_range!book_lim[3+:2] printf("book %s %d %d\n", title, thickness, weight) printf("add %s 1\n", title) } write("pcase 1") end