320
社区成员




公交上有N排凳子,每排有两个凳子,每一排的凳子宽度不一样。有一些内向和外向的人按照顺序上车。 外向的人(0):只会选择没人的一排坐下,如果有很多排符合要求,他会选择座位宽度最小的坐下。 内向的人(1):只会选择有人的一排坐下,如果有很多排符合要求,他会选择座位宽度最大的坐下。 数据保证存在合理。输出每个人所在的排。
输出每个人应该坐在那一排。
仔细读题,没拍有两个凳子,而不是宽度多少,就可以坐多少人,老顾开始就没仔细审题,弄错了。
题目还是很简单的,因为只能坐两个人,且性格1的人必须挨着性格0的人做,所以,用栈操作下就好。
- n = int(input())
- w = sorted([[i + 1,int(k)] for i,k in enumerate(input().split())],key = lambda x:x[1])
- p = input()
- ans,stack,m = [],[],0
- for i in p:
- if i == '0':
- v = w[m][0]
- stack.append(v)
- ans.append(v)
- m += 1
- else:
- ans.append(stack.pop())
- print(*ans)