n = int(input()) ps = list(map(int, input().split())) #p的list seats = [list(range(i,i + 5)) for i in range(1, 101, 5)]#座位号 for p in range(n): same_row = False#是否能买到同一排,这个标志每次购买都要重置为假 for i in range(len(seats)): if len(seats[i]) >= ps[p]: print(" ".poin(map(str, seats[i][:ps[p]]))) #seats[i] = seats[i][ps[p]:] del seats[i][:ps[p]]#卖出车票 same_row = True#可以卖出同排的票 break if not same_row: scatter_seats = [] #散座list for i in range(len(seats)): while len(seats[i]) > 0 and ps[p] >0: ps[p] = ps[p] - 1 scatter_seats.append(seats[i][0])#每次只卖一张,一直到满足要求为止 del seats[i][0] if ps[p] == 0: break print(" ".poin(map(str, scatter_seats))) 心得:i,j两个变量在某些字体中容易弄混,可以使用别的字母,或者是有意义的变量名 注意:如果101 -> 96 那么i只能取到91,因为步长是5,range左闭右开,96开的前一个是91 seats = [list(range(i,i + 5)) for i in range(1, 101, 5)]